R-根据现有列指定的位置创建新列

R-根据现有列指定的位置创建新列,r,conditional,R,Conditional,我有一个数据集(df)看起来像这样 A B C D E Position 67 68 69 70 71 5 20 21 22 23 24 2 98 97 96 95 94 3 2 5 7 9 12 5 4 8 12 16 20 4 我正在尝试创建一个新列(Result),其中Result

我有一个数据集(df)看起来像这样

A   B   C   D   E   Position    
67  68  69  70  71   5           
20  21  22  23  24   2           
98  97  96  95  94   3           
2   5   7   9   12   5           
4   8   12  16  20   4           
我正在尝试创建一个新列(
Result
),其中Result的值等于结果列的每一行在
position
列中指定的列的位置

例如,如果
位置
列的第1行为5,则
结果
列的值将为第1行的第5列

我的结果列将如下所示:

     A   B  C   D   E   Position    Result
    67  68  69  70  71   5           71
    20  21  22  23  24   2           21
    98  97  96  95  94   3           96
    2   5   7   9   12   5           12
    4   8   12  16  20   4           16
我使用了下面的命令,它没有给我所需要的。它将所有
位置
列值集中在每一行中。我无法确定如何才能得到正确的结果

感谢您的帮助


谢谢

使用矩阵索引提取值:

df[cbind(1:nrow(df), df$Position)]
# [1] 71 21 96 12 16
以正常方式分配结果:

df$Result <- df[cbind(1:nrow(df), df$Position)]

df$Result也可以尝试:
t(df[,-6])[df$Position+0:4*5]#[1]71 21 96 12 16
在本例中,可以使用
df$Result