R 通过排除基于观察次数的病例对数据进行分组

R 通过排除基于观察次数的病例对数据进行分组,r,data.table,subset,R,Data.table,Subset,以下是我掌握的数据: library(data.table) ID <- c("A","A","B","C","C","C","C") Session <-c(1,2,1,1,2,3,4) Value <- c(10,6,15,20,25,35,35) Have <- data.table(ID,Session,Value) Have ID Session Value A 1 10 A 2 6 B

以下是我掌握的数据:

library(data.table)
ID <- c("A","A","B","C","C","C","C")
Session <-c(1,2,1,1,2,3,4)
Value <- c(10,6,15,20,25,35,35)
Have <- data.table(ID,Session,Value)
Have

    ID Session Value
    A       1    10
    A       2     6
    B       1    15
    C       1    20
    C       2    25
    C       3    35
    C       4    35
库(data.table)

ID我们可以在按“ID”分组后使用
if
条件

注意:这不考虑“会话”中的值。它基于行数

假设OP提到唯一“会话”的数量应该大于1,我们使用
uniqueN
(基本上是
unique
元素的
length

为了安全起见,如果OP只希望“会话”中的“ID”具有大于1的任何

Have[, if(any(Session > 1)) .SD, ID]

或者如果我们更喜欢
dplyr

library(dplyr)
Have %>% 
      group_by(ID) %>%
      filter(n() >1)

我认为对我来说最好的解决方案是dplyr。谢谢!
Have[, if(any(Session > 1)) .SD, ID]
library(dplyr)
Have %>% 
      group_by(ID) %>%
      filter(n() >1)