从下面的数据框中,如果 Name 列与列名匹配,我试图将 (AC, BAT,REC) 的相应值带到 New_Mutate 列。
df1 <- data.frame(AC=c(1.463437e-04,1.023486e-04,1.584040e-05 ),
BAT = c(6.555388e-05,5.471379e-01,6.025364e-06),
REC = c(6.541157e-05,9.590567e-05,1.581244e-01),
Name = c("BAT", "AC", "REC"))
>df1
AC BAT REC Name
1 0.0001463437 6.555388e-05 6.541157e-05 BAT
2 0.0001023486 5.471379e-01 9.590567e-05 AC
3 0.0000158404 6.025364e-06 1.581244e-01 REC
预期输出:
AC BAT REC Name New_Mutate
1 1.463437e-04 6.555388e-05 6.541157e-05 BAT 6.555388e-05
2 1.023486e-04 5.471379e-01 9.590567e-05 AC 1.023486e-04
3 1.584040e-05 6.025364e-06 1.581244e-01 REC 1.581244e-01
最佳答案
df1 %>% mutate(new_c = (.)[cbind(row_number(), match(Name, names(.)))])
# AC BAT REC Name new_c
#1 0.0001463437 6.555388e-05 6.541157e-05 BAT 6.555388e-05
#2 0.0001023486 5.471379e-01 9.590567e-05 AC 0.0001023486
#3 0.0000158404 6.025364e-06 1.581244e-01 REC 1.581244e-01
关于r - 改变与列名匹配的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58980276/