我有一个带有命名列的数据框。
我们假设:
> colnames(df)
[1] "apple" "orange" "banana" "pear" "melon"
我想获取与向量中的字符串匹配的列的索引。
> myNames = c("apple","pear")
> foo(myNames,colnames(df))
[1] 1 4
最初,我想到了which()
和%in%
,但是由于输入都是矢量,因此在我的实现中均无效。为了完整起见,示例如下:
> which(colnames(df) == myNames )
> myNames %in% colnames(df)
在不进行循环的情况下提供帮助的任何帮助。
答案 0 :(得分:3)
which
和%in%
是一个选择
x <- c("apple", "orange", "banana", "pear", "melon")
myNames = c("apple","pear")
which(x %in% myNames)
[1] 1 4
另一个是match
match(myNames, x)
[1] 1 4
答案 1 :(得分:0)
您可以使用grep像这样一个一个地找到它们:
grep("apple",df)
或使用此:
colno=function(vector,df){
result=c()
a=length(vector)
for(i in 1:a){
result[i]=grep(vector[i],colnames(df))}
return(result)}
然后称呼它,
colno(myNames,df)
希望有帮助