2016-04-03 49 views
0

我有兩個數據集,第一個數據集(DF1)是一個治療組,有ID,var1,var2,結果四個變量。 ID和結果對於一個人是一樣的。 但var1和var2正在改變。請注意每個人有不同的行號。像ID1具有3行,ID2僅具有2基於不同的日期集合,預測日期r

ID  var1    var2   result 
1  30    2013-11-23  2014-06-26 
1  30    2013-12-23  2014-06-26 
1  30    2014-1-23  2014-06-26 
2  60    2013-10-06  2014-05-10 
2  30    2014-01-6  2014-05-10 

第二數據集(DF2)具有相同的變量作爲ID,VAR1,VAR2。但它沒有結果。

ID  var1    var2   
a  30    2013-10-23  
a  30    2013-11-23  
a  30    2014-12-23  
b  60    2013-10-06  
b  30    2014-01-06  
b  30    2014-02-03 

我的問題是,我可以使用什麼樣的方法根據VAR1給每個人在DF2結果,VAR2比較DF1?我認爲DF1中的人可能不可能具有與DF2完全相同的var 1和var 2 ..

非常感謝您提前給予任何幫助!

+0

你的問題並不完全清楚。你能舉一個你預期結果的例子嗎?另外,看看'?merge' – SymbolixAU

回答

0

你們是不是要匹配DF1DF2var1var2然後分配給result DF2基礎上,那裏是一個匹配?如果是這樣,這將工作:

DF2$result <- NA 
DF2[which((DF2$var1 %in% DF1$var1) & (DF2$var2 %in% DF1$var2)),'result'] <- DF1[which((DF1$var1 %in% DF2$var1) & (DF1$var2 %in% DF2$var2)),'result'] 

您將需要確保var1var2resultfactor變量,否則可能會給出錯誤的結果。如果您需要它們爲factor,請在運行上述腳本之後,先將它們轉換爲numericcharacter,然後再轉換爲factor