我有4个变量:学生ID,他们参加的学期(最多3个学期),他们的某种活动(行为)以及活动发生的日期。由于有些学生只参加了一到两个学期,这是一种使用R参加所有3个学期的学生分组数据的方法吗?非常感谢!数据如下:
ID date act semester
123256 11/1/2015 105 2015Fall
123256 10/1/2014 1 2014Fall
123256 10/1/2015 4 2015Fall
123256 9/1/2016 48 2016Win
545454 12/4/2015 64 2015Fall
545454 10/4/2015 49 2015Fall
545454 9/4/2014 66 2014Fall
545454 12/5/2015 66 2015Fall
545454 10/5/2014 57 2014Fall
224821 10/13/2015 35 2015Fall
224821 12/14/2015 130 2015Fall
224821 11/14/2015 55 2015Fall
224821 10/14/2015 6 2015Fall
633443 10/17/2015 26 2015Fall
633443 9/17/2015 60 2015Fall
633443 12/18/2015 204 2015Fall
633443 11/18/2016 114 2016Win
答案 0 :(得分:0)
如果我们需要对参加3'学期的学生(" ID")进行分组,我们可以使用data.table
。转换' data.frame'到' data.table' (setDT(df1)
),按' ID'分组,if
length
个unique
元素是'学期'是3(uniqueN
- 是length(unique(.))
的包装器),我们对数据集(.SD
)进行了子集。
library(data.table)
setDT(df1)[, if(uniqueN(semester)==3) .SD , ID]
# ID date act semester
#1: 123256 11/1/2015 105 2015Fall
#2: 123256 10/1/2014 1 2014Fall
#3: 123256 10/1/2015 4 2015Fall
#4: 123256 9/1/2016 48 2016Win