2013-08-23 135 views
0

假設我有兩個數據幀,DF和DF2,看起來像:除以基於兩個數據幀一列中的R

DF

 User Lab Score 
     A  1021 12 
     A  1022 10 
     A  1024 15 
     B  1021 9 
     B  1022 9 
     B  1023 14 
     C  1024 10 

DF2

 Lab Score 
     1021 15 
     1022 10 
     1023 15 
     1024 15 

我想根據實驗室將df中的Score列與df2中的Score列分開。因此,我想用一個數據幀,看起來落得像:

 User Lab Score 
     A  1021 0.8 
     A  1022 1.0 
     A  1024 1.0 
     B  1021 0.6 
     B  1022 0.9 
     B  1023 0.93 
     C  1024 0.67 

其中12/15 = 0.8,10/10 = 1.0,15/15 = 1.0,9/15 = 0.6,9/10 = 0.9,14/15 = 0.9333,10/15 = 0.6667

回答

0

只是匹配實驗室像這樣:

df$Score <- df$Score/df2$Score[ match(df$Lab , df2$Lab) ] 
# User Lab  Score 
#1 A 1021 0.8000000 
#2 A 1022 1.0000000 
#3 A 1024 1.0000000 
#4 B 1021 0.6000000 
#5 B 1022 0.9000000 
#6 B 1023 0.9333333 
#7 C 1024 0.6666667 

match返回第一匹配它的指數是第一個參數,在它的第二個參數。用英語返回df2中的哪一行是每個實驗室在df的匹配。

相關問題