R计算多级组数据框

时间:2016-11-30 21:37:05

标签: r

我正在使用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,但是还没有能够把它弄好。有人可以帮忙吗?

我意识到这对你们大多数人来说都是非常基本的,对于这样一个新手问题我很抱歉。

3 个答案:

答案 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)]