假设我有两个数据帧df和df2,它们看起来像:
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中的得分列除以df2中的得分列,具体取决于实验室。因此,我希望得到一个看起来像这样的数据框:
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 :(得分: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
中每个实验的匹配。