2014-01-10 131 views
1

過濾行我有兩個數據幀:R:基於另一數據幀

>dfMapping 
Name Number 
a 10 
b 20 
c 15 


>dfMapping2 
Name Total Type 
a 112 x 
a 20  y 
a 1  z 
b 10  x 
b 120 z 
c 11  z 
c 100 x 

dfMapping2我想僅在dfMapping2$Total > dfMapping$Number和最終Total應具有Total - dfMapping$Number那些行。所以,這裏的結果應該是:

>result 
Name Total Type 
a  102 x 
a  10  y 
b  100 z 
c  85  x 

有人可以幫助我嗎?

謝謝。

+1

兩步?:1)名稱合併使DF 2)DF [DF $總計> DF $號碼,] –

+0

你確定你展示結果正確? – rrs

回答

1

這是斯蒂芬的解決方案。第1步:合併數據幀。第2步:根據條件進行過濾。

df <- merge(dfMapping, dfMapping2) 
df <- with(df, df[Total > Number,]) 

產生:

Name Number Total Type 
1 a  10 112 x 
2 a  10 20 y 
5 b  20 120 z 
7 c  15 100 x 
+0

只需要兩行:'df [,3] < - (df [,3] -df [,2])'來休息這些值,然後'df < - df [, - 2]'得到Name Total和類型列 – Llopis

+0

+1總天才;) –

相關問題