R 仅保留具有多个观测值的数据组

R 仅保留具有多个观测值的数据组,r,dplyr,R,Dplyr,我试图只保留有多重观察的神明 我有下面的代码 help <- data.frame(deid = c(1, 5, 5, 5, 5, 5, 5, 12, 12, 12, 12), session.number = c(1, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4), days.since.last = c(0, 0, 7, 14, 93, 5, 102, 0, 21, 104, 4)) de

我试图只保留有多重观察的神明

我有下面的代码

help <- data.frame(deid = c(1, 5, 5, 5, 5, 5, 5, 12, 12, 12, 12),
                   session.number = c(1, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4),
                   days.since.last = c(0, 0, 7, 14, 93, 5, 102, 0, 21, 104, 4))

   deid session.number days.since.last
1     1              1               0
2     5              1               0
3     5              2               7
4     5              3              14
5     5              4              93
6     5              5               5
7     5              6             102
8    12              1               0
9    12              2              21
10   12              3             104
11   12              4               4
但是,它只保留会话。数字为2或更大。所以我去掉了deid=1,但是所有剩余的deid数据都从session.number 2开始,而不是session.number 1

我想告诉R的是保持组(deid)的观察值大于1(session.number)


非常感谢您的帮助

这应该可以做到-您需要根据使用
n()
获得的每组观察数进行过滤:


改为使用data.table:

helpcount <- help[, list(Count = .N), by = deid]
helpf <- merge(help,helpcount, by = "deid")
helpf <- helpf[Count > 1]
编辑2:thelatemail更简洁的解决方案:

help[,if(.N > 1) .SD, by=deid]

help[,if(.N>1).SD,by=deid]
您的答案中是否有一个参数我可以添加到您的答案中,该参数将只提取包含至少2行观察数据的观察值?e、 g.当我运行上面的代码时,我得到了两个观察值的组,但是,有时其中一个在NA中。我只想保留那些至少有2个观察值而不是1个观察值1 NA的。@b哪个列有
NA
?在运行上面的代码OK之前,您需要过滤掉它。我在数据集中遇到了另一个变量的问题,但我应该能够从这里解决它。谢谢
helpcount <- help[, list(Count = .N), by = deid]
helpf <- merge(help,helpcount, by = "deid")
helpf <- helpf[Count > 1]
help[, Count := .N, by = deid]
help[Count > 1]
help[,if(.N > 1) .SD, by=deid]