这是Kikapp answer的后续问题。
我想删除缺少所有时间点的参与者ID。换句话说,我想选择具有所有四个时间的行(11,21,31,41)。请参阅示例数据dropbox link
这是基于Kikapp答案的尝试。出于某种原因,它不起作用。让我知道如何让它变得更好。
data2 <- df[df$ID %in% names(table(df$ID))[table(df$ID) > 3],]
我为time == 11
,time == 21
,time == 41
获得了4695行或对象或ID,而time == 31
则为4693;但是,我希望他们应该是平等的。
答案 0 :(得分:1)
您可以使用dplyr
执行此任务,以获得更快的结果:
df1 <- df %>% group_by(ID) %>%
dplyr::filter(length(unique(time)) == 4) %>%
data.frame()
但是,当您获得每个ID
值time
的计数时,您会发现其中隐藏了32
个(2)行总数):
df1 %>% group_by(time) %>%
dplyr::summarise(Counts = n()) %>%
data.frame()
#Output:
time Counts
11 4695
21 4695
31 4693
32 2
41 4695
这表示您有2行,其值为32
。事实证明,这是由于你的错字。因此,您可以使用df$time[df$time == 32] <- 31
更改它们并再次运行代码。
我希望这很有帮助。
谢谢!