R-根据现有列指定的位置创建新列
我有一个数据集(df)看起来像这样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
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