Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- UID HHID PERID ActNo
- 1 1000 1 1
- 2 1000 1 2
- 3 1000 1 3
- 4 1000 2 1
- 5 1000 2 2
- 6 2000 1 1
- 7 2000 1 2
- 8 2000 1 3
- 9 2000 1 4
- 10 2000 2 1
- 11 2000 2 2
- UID HHID PERID ActNo MaxAct
- 1 1000 1 1 3
- 2 1000 1 2 3
- 3 1000 1 3 3
- 4 1000 2 1 2
- 5 1000 2 2 2
- 6 2000 1 1 4
- 7 2000 1 2 4
- 8 2000 1 3 4
- 9 2000 1 4 4
- 10 2000 2 1 2
- 11 2000 2 2 2
- dat$MaxAct <- with(dat, ave(ActNo, HHID, PERID, FUN=max) )
- dat$MaxAct <- with(dat, ave(ActNo, HHID, PERID, FUN=function(x) max(x, na.rm=TRUE) ) )
- library(data.table)
- DT <- data.table(DF)
- DT[,MaxAct := max(ActNo), by = list(HHID, PERID)]
- DT[,MaxAct := .N, by = list(HHID, PERID)]
- require(plyr)
- ddply(dat, .(HHID, PERID), transform, MaxAct = max(ActNo))
- UID HHID PERID ActNo MaxAct
- 1 1 1000 1 1 3
- 2 2 1000 1 2 3
- 3 3 1000 1 3 3
- 4 4 1000 2 1 2
- 5 5 1000 2 2 2
- 6 6 2000 1 1 4
- 7 7 2000 1 2 4
- 8 8 2000 1 3 4
- 9 9 2000 1 4 4
- 10 10 2000 2 1 2
- 11 11 2000 2 2 2
- df <- read.table(textConnection("UID HHID PERID ActNo
- 1 1000 1 1
- 2 1000 1 2
- 3 1000 1 3
- 4 1000 2 1
- 5 1000 2 2
- 6 2000 1 1
- 7 2000 1 2
- 8 2000 1 3
- 9 2000 1 4
- 10 2000 2 1
- 11 2000 2 2"), header=T)
- > ddply(df, .(HHID, PERID), transform, MaxAct = length(unique(ActNo)) )
- UID HHID PERID ActNo MaxAct
- 1 1 1000 1 1 3
- 2 2 1000 1 2 3
- 3 3 1000 1 3 3
- 4 4 1000 2 1 2
- 5 5 1000 2 2 2
- 6 6 2000 1 1 4
- 7 7 2000 1 2 4
- 8 8 2000 1 3 4
- 9 9 2000 1 4 4
- 10 10 2000 2 1 2
- 11 11 2000 2 2 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement