首页 > 解决方案 > 根据特定列用其他值填充数据框列

问题描述

我的dataframe样子:

在此处输入图像描述

我尝试添加一个新列并用每行的列号值(间隔 + 3)填充它。

例如,如果intervals = 3,我想获得DF[,3+3]

我试过这个,但它没有用:

DF$new_col <- DF[,DF$intervals[]+3]

标签: rdataframe

解决方案


尽管从问题中对问题的描述并不完全清楚。for如果它解决了您的查询,仍然检查以下基于循环的解决方案。请注意,由于没有提供可重现的数据,因此我为此目的生成了一个虚拟数据。

> df<-data.frame(D1=c(2,8,1,5,2),D2=c(7,3,5,6,8),D3=c(9,6,4,1,0),D4=c(12,20,61,80,91),Interval=c(1,2,1,0,1))
> df
  D1 D2 D3 D4 Interval
1  2  7  9 12        1
2  8  3  6 20        2
3  1  5  4 61        1
4  5  6  1 80        0
5  2  8  0 91        1
> for (i in 1:nrow(df)){
+ df[i,6]<-df[i,df$Interval[i]+3]
+ }
> df
  D1 D2 D3 D4 Interval V6
1  2  7  9 12        1 12
2  8  3  6 20        2  2
3  1  5  4 61        1 61
4  5  6  1 80        0  1
5  2  8  0 91        1 91

推荐阅读