Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. UID HHID PERID ActNo
  2. 1 1000 1 1
  3. 2 1000 1 2
  4. 3 1000 1 3
  5. 4 1000 2 1
  6. 5 1000 2 2
  7. 6 2000 1 1
  8. 7 2000 1 2
  9. 8 2000 1 3
  10. 9 2000 1 4
  11. 10 2000 2 1
  12. 11 2000 2 2
  13.  
  14. UID HHID PERID ActNo MaxAct
  15. 1 1000 1 1 3
  16. 2 1000 1 2 3
  17. 3 1000 1 3 3
  18. 4 1000 2 1 2
  19. 5 1000 2 2 2
  20. 6 2000 1 1 4
  21. 7 2000 1 2 4
  22. 8 2000 1 3 4
  23. 9 2000 1 4 4
  24. 10 2000 2 1 2
  25. 11 2000 2 2 2
  26.  
  27. dat$MaxAct <- with(dat, ave(ActNo, HHID, PERID, FUN=max) )
  28.  
  29. dat$MaxAct <- with(dat, ave(ActNo, HHID, PERID, FUN=function(x) max(x, na.rm=TRUE) ) )
  30.  
  31. library(data.table)
  32. DT <- data.table(DF)
  33. DT[,MaxAct := max(ActNo), by = list(HHID, PERID)]
  34.  
  35. DT[,MaxAct := .N, by = list(HHID, PERID)]
  36.  
  37. require(plyr)
  38. ddply(dat, .(HHID, PERID), transform, MaxAct = max(ActNo))
  39.  
  40. UID HHID PERID ActNo MaxAct
  41. 1 1 1000 1 1 3
  42. 2 2 1000 1 2 3
  43. 3 3 1000 1 3 3
  44. 4 4 1000 2 1 2
  45. 5 5 1000 2 2 2
  46. 6 6 2000 1 1 4
  47. 7 7 2000 1 2 4
  48. 8 8 2000 1 3 4
  49. 9 9 2000 1 4 4
  50. 10 10 2000 2 1 2
  51. 11 11 2000 2 2 2
  52.  
  53. df <- read.table(textConnection("UID HHID PERID ActNo
  54. 1 1000 1 1
  55. 2 1000 1 2
  56. 3 1000 1 3
  57. 4 1000 2 1
  58. 5 1000 2 2
  59. 6 2000 1 1
  60. 7 2000 1 2
  61. 8 2000 1 3
  62. 9 2000 1 4
  63. 10 2000 2 1
  64. 11 2000 2 2"), header=T)
  65.  
  66.  
  67. > ddply(df, .(HHID, PERID), transform, MaxAct = length(unique(ActNo)) )
  68. UID HHID PERID ActNo MaxAct
  69. 1 1 1000 1 1 3
  70. 2 2 1000 1 2 3
  71. 3 3 1000 1 3 3
  72. 4 4 1000 2 1 2
  73. 5 5 1000 2 2 2
  74. 6 6 2000 1 1 4
  75. 7 7 2000 1 2 4
  76. 8 8 2000 1 3 4
  77. 9 9 2000 1 4 4
  78. 10 10 2000 2 1 2
  79. 11 11 2000 2 2 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement