我有两个数据框:
> d1
x1 date x1_rat
1 0 3652 0
2 10 3652 8.3
3 10 3653 7.69
我想在d1中创建一个新列,它是我们通过将d1 $ x1与d2 $ rat除以特定日期得到的值。
例如,我想要的结果是
canPlayType(type)
依旧......
这些计算为0 / 1.2,10 / 1.2,10 / 1.3等等......
如何做到这一点?我基本上把'date'作为一个索引来知道d2 [,1]中的哪些值用来划分d1 [,1]。
答案 0 :(得分:4)
您可以使用match
标识与d2
每行对应的d1
行:
d1$x1_rat <- d1$x1 / d2$rat[match(d1$date, d2$date)]
d1
# x1 date x1_rat
# 1 0 3652 0.000000
# 2 10 3652 8.333333
# 3 10 3653 7.692308
# 4 20 3654 20.000000
# 5 2 3655 2.000000
# 6 2 3656 1.666667
# 7 6 3657 4.615385
类似的方法有点麻烦,就是在两个数据帧上使用merge
,然后计算比率。