2016-01-26 25 views
0

我有4個變量:學生證,他們參加的學期(最多3個學期),他們的某種活動(行爲)和活動發生的日期。由於有些學生只需要一到兩個學期,這是一種將數據與參加所有3個學期的學生進行數據分類的方法,使用R?非常感謝!數據是這樣的:如何用一個變量的所有因子對數據進行子集分類?

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

如果我們需要子集參加3「學期」的學生(「ID」),我們可以使用data.table。將'data.frame'轉換爲'data.table'(setDT(df1)),按'ID'分組,iflengthunique元素爲'學期'爲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 
相關問題