我有一个数据框,其中包含一些包含数据的列以及包含列名称的列:
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/