我想引用数据框列中的值,其中行索引取决于另一列的值。
示例:
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数据框中执行此操作?
谢谢!
答案 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
其他评论者提到您似乎只是添加lag
和value
列,因为您的value
列包含元素1到10,但此解决方案将即使您的{{1}}列中还存储了其他数据,也能正常工作。