仅保留具有多个观察值的数据组 [英] Keep only groups of data with multiple observations
问题描述
我试图只保留具有多个观察结果的 deids.
I am attempting to keep only deids with multiple observations.
我有以下代码
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
我无力的尝试是使用 group_by 然后使用 filter( ) 命令
My feeble attempt was to use the group_by and then the filter( ) command
help %>% group_by(deid) %>% filter(session.number >=2)
然而,它只保持 session.number 为 2 或更大.所以我去掉了 deid = 1,但所有剩余的 deid 数据都从 session.number 2 开始,而不是 session.number 1.
However, it only keeps session.number's at 2 or greater. So I get rid of the deid = 1, but all the remaining deid data starts at session.number 2, and not session.number 1.
我想告诉 R 的是让组(deid)保持大于 1 的观察(session.number)
What I am trying to tell R is to keep the groups (deid) with greater than 1 observation (session.number)
非常感谢任何帮助.
推荐答案
应该这样做 - 您需要通过使用 n()
获得的每个组中的观察数量进行过滤:>
this should do it - you need to filter by number of observations in each group which is got using n()
:
help %>% group_by(deid) %>% filter(n()>1)
deid session.number days.since.last
1 5 1 0
2 5 2 7
3 5 3 14
4 5 4 93
5 5 5 5
6 5 6 102
7 12 1 0
8 12 2 21
9 12 3 104
10 12 4 4
这篇关于仅保留具有多个观察值的数据组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!