我试图根据R中的内容获取data.frame列的名称。 例如,在
中dd= data.frame(col1=c(1,2,3), col2=c(4,5,6), col3=c(4,4,4))
当我提供col1
时,我正在寻找能够返回c(1,2,3)
的内容。
我找到了这个advice elsewhere,但它对我不起作用;按照建议,我试试这个
colnames(dd)[which(dd == c(1,2,3), arr.ind = TRUE)]
colnames(dd)[which(dd == c(1,2,3), arr.ind = TRUE)[2]]
它会返回各种各样的东西,这里是第一个结果:
[1] "col1" "col2" "col3" "col1" "col1" "col1"
最好的方法是什么?
上述方法是否正确;你能解释一下究竟是什么吗?
我很惊讶在这里找不到任何东西;如果它是重复的,我会很高兴链接/搜索条款。
感谢您的帮助!
答案 0 :(得分:3)
使用identical
的一种方式,
names(dd)[sapply(dd, function(i)identical(i, c(1, 2, 3)))]
#[1] "col1"
names(dd)[sapply(dd, function(i)identical(i, c(4, 5, 6)))]
#[1] "col2"