我正在使用R并且有这样的数据框
Record_Num STR
1 ABC
1 ABC
1 EFG
2 HIJ
2 HIJ
2 KLM
3 KLM
3 KLM
3 KLM
我试图为每个记录号码计算每个STR,所以像这样:
Record_Num STR Count
1 ABC 2
1 EFG 1
2 HIJ 2
2 KLM 1
3 KLM 3
如果我能得到它我可以采取步骤来获得我需要的东西,但我的下一步是简单地清除每个STR的最大数量(我将用它来创建一个循环 - 我' m试图收拾一些非常混乱的数据)。如果我可以将其纳入一个步骤,那就更好了,但我并不关心这一点。我似乎无法解决上述问题。鉴于我是一个极端的新手。我已经玩弄了桌子和tapply,但是还没有能够把它弄好。有人可以帮忙吗?
我意识到这对你们大多数人来说都是非常基本的,对于这样一个新手问题我很抱歉。
答案 0 :(得分:2)
甚至更简单:
library(dplyr)
count(dat, Record_Num, STR)
答案 1 :(得分:1)
您可以执行以下操作:
require(dplyr)
dat %>%
group_by(Record_Num, STR) %>%
summarise(Count = n())
这给了你:
Record_Num STR Count
1 1 ABC 2
2 1 EFG 1
3 2 HIJ 2
4 2 KLM 1
5 3 KLM 3
答案 2 :(得分:1)
如果你使用data.table,这很容易。
setDT(dat)
dat[,.(Count =.N), by=.(STR, Record_Num)]