r - 如何使用列值作为列名?

标签 r

我有一个数据框,其中包含一些包含数据的列以及包含列名称的列:

mydf <- data.frame(
  "aa" = 11:15,
  "ab" = 21:25,
  "ac" = 31:35,
  "nn" = c("aa", "aa", "ac", "ab", "aa"))

我想从“aa”、“ab”或“ac”列中获取向量。每行的列名称在“nn”列中指定。

所以我应该得到11, 12, 33, 24, 15

这可以在没有循环的情况下完成吗? mydf[mydf$nn] 不起作用。

最佳答案

我们可以使用match返回列名称的索引,然后创建行/列索引来提取值

mydf[-4][cbind(seq_len(nrow(mydf)), match(mydf$nn, names(mydf)))]
#[1] 11 12 33 24 15

关于r - 如何使用列值作为列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54510225/

相关文章:

c++ - 计算 vector 上正态分布的 cdf 的最快方法 - R::pnorm vs erfc vs?

r - 自动计算数据框的汇总统计数据并创建新表

r - 使用日期结构略有不同的 xts

r - 如何剥离glm模型?

r - 如何绘制一个因子的多个频率的数据框?

r - 如何将随机 `NA`添加到数据框中

r 中显式行的行号

r - 图像作为图表中的标签?

r - 错误: package 'lsei' is not installed for 'arch=x64'

r - R中的格式日期(年-月)