Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set.seed(42)
- DF <- data.frame(key1=sample(letters[1:2],10,TRUE),
- key2=sample(letters[1:2],10,TRUE),
- key3=sample(letters[1:2],10,TRUE))
- DF <- within(DF,{newkey <- interaction(key1,key2,key3,drop=TRUE)
- levels(newkey) <- paste0("key",seq_along(levels(newkey)))
- })
- # key1 key2 key3 newkey
- # 1 b a b key4
- # 2 b b a key2
- # 3 a b b key5
- # 4 b a b key4
- # 5 b a a key1
- # 6 b b b key6
- # 7 b b a key2
- # 8 a a b key3
- # 9 b a a key1
- # 10 b b b key6
- library(data.table)
- as.data.table(DF)[, combined := .GRP, by = names(DF)][]
- # key1 key2 key3 combined
- # 1: b a b 1
- # 2: b b a 2
- # 3: a b b 3
- # 4: b a b 1
- # 5: b a a 4
- # 6: b b b 5
- # 7: b b a 2
- # 8: a a b 6
- # 9: b a a 4
- # 10: b b b 5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement