R数据帧中的间接引用

时间:2014-03-25 14:52:59

标签: r

我想引用数据框列中的值,其中行索引取决于另一列的值。

示例:

value   lag laggedValue
1        1      2
2        2      4
3        3      6
4        2      6
5        1      6
6        3      9
7        3      10
8        1      9
9        1      10
10       2  

在Excel中,我在“laggedValue”栏中使用此公式:

=INDIRECT("B"&(ROW(B2)+C2))

如何在R数据框中执行此操作?

谢谢!

2 个答案:

答案 0 :(得分:0)

假设与@rawr相同:

dat <- data.frame(value=c(1:10),
                  lag=c(1,2,3,2,1,3,3,1,1,2))

dat$laggedValue <- dat$value + dat$lag
dat
   value lag laggedValue
1      1   1           2
2      2   2           4
3      3   3           6
4      4   2           6
5      5   1           6
6      6   3           9
7      7   3          10
8      8   1           9
9      9   1          10
10    10   2          12

答案 1 :(得分:0)

对于具有相关滞后值r的行lag[r],您似乎正在尝试创建(r+lag[r]) value元素dat$laggedValue <- dat$value[seq(nrow(dat)) + dat$lag] dat value lag laggedValue 1 1 1 2 2 2 2 4 3 3 3 6 4 4 2 6 5 5 1 6 6 6 3 9 7 7 3 10 8 8 1 9 9 9 1 10 10 10 2 NA 的新列(如果超出范围,则为缺失值。你可以这样做:

value

其他评论者提到您似乎只是添加lagvalue列,因为您的value列包含元素1到10,但此解决方案将即使您的{{1}}列中还存储了其他数据,也能正常工作。