如何使用一个变量存在的所有因子对数据进行子集化?

时间:2016-01-26 18:51:40

标签: r

我有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

1 个答案:

答案 0 :(得分:0)

如果我们需要对参加3'学期的学生(" ID")进行分组,我们可以使用data.table。转换' data.frame'到' data.table' (setDT(df1)),按' ID'分组,if lengthunique元素是'学期'是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