使用r中数据帧之间的索引

时间:2015-07-24 14:49:32

标签: r

我有两个数据框:

> 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]。

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,然后计算比率。