Tah*_*rar 3 combinations r count
我正在尝试在第1列的值数据中找到所有实际组合。
然后,我想按第2列计算所有这些事件的发生。
感觉R应该可以很快地做到这一点。我尝试阅读combn和expand.grid,但没有成功。主要问题是我找不到有关如何在列中生成组合的任何指导。
我的数据如下:
Animal (n=57) | Person ID (n=1000)
Dog | 0001
Cat | 0004
Bird | 0001
Snake | 0002
Spider | 0002
Cat | 0003
Dog | 0004
Run Code Online (Sandbox Code Playgroud)
预期输出为:
AnimalComb | CountbyID
Cat | 1
DogBird | 1
SnakeSpider | 1
CatDog | 1
Run Code Online (Sandbox Code Playgroud)
编辑删除了猫的错误条目
如果我理解正确的,你需要group_by PersonID和paste所有的unique Animal组中的S和计数其组合的出现可以完成组(在计算行数的数量n()由不同值的数目),并除以(n_distinct)。
library(dplyr)
df %>%
group_by(PersonID) %>%
summarise(AnimalComb = paste(unique(Animal), collapse = ""),
CountbyID = n() / n_distinct(Animal))
# PersonID AnimalComb CountbyID
# <int> <chr> <dbl>
#1 1 DogBird 1
#2 2 SnakeSpider 1
#3 3 Cat 1
#4 4 CatDog 1
Run Code Online (Sandbox Code Playgroud)