根据名称向量获取列索引(在R中)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据名称向量获取列索引(在R中)相关的知识,希望对你有一定的参考价值。

我有一个带有命名列的数据框。

我们假设:

> 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)

如何在没有循环的情况下执行此操作的任何帮助将不胜感激。

答案

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
另一答案

您可以使用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)

希望能帮助到你

以上是关于根据名称向量获取列索引(在R中)的主要内容,如果未能解决你的问题,请参考以下文章

datagridview 列索引

pandas笔记:根据列索引名称/行索引名称 对列重新排序

如何在 Pandas 中选择某些列索引(连续和单独)

在Javascript中从Kendo网格中的列名获取列索引

如何获取数据库中保存状态的数据表可见列索引

通过标题名称而不是列索引引用 VSTO Excel ListObject 的列