2017-04-25 36 views
0

我試圖從大數據框中創建兩個不同的子集。下面的代碼:保留子集的所有觀察結果

amelioration <- subset(resilience, 
     (subset(resilience, resilience$YEAR==2010)$SCORE> 
     subset(resilience, resilience$YEAR==2009)$SCORE)) 

的目的是選擇在2010年更好的成績比2009年 問題的意見是,在新表(改善),線2009和2010是缺少但我想保留它們。

它應該是這樣的:

ID | YEAR | SCORE 
-------------------- 
177 | 2008 | 14 
-------------------- 
177 | 2009 | 11 
-------------------- 
177 | 2010 | 17 
-------------------- 
177 | 2011 | 16 

但它看起來像這個:

ID | YEAR | SCORE 
-------------------- 
177 | 2008 | 14 
-------------------- 
177 | 2011 | 16 

我試圖與命令,但它也不起作用。我該怎麼辦 ?

+4

你能展示一個小的可重現的示例輸入示例,而不是中間輸出 – akrun

回答

0

使用data.table可以重新評估年份變量的分數,並直接篩選年份。

ambivalence = data.table(ambivalence) 
castedDF = dcast(ambivalence, id ~ year, fun.aggregate = sum) 
targetRows = castedDF[`2010` > `2009`]