假设我们有以下数据框:
> df
A B C
1 1 2 3
2 4 5 6
3 7 8 9
我们可以从其索引中选择列“ B”:
> df[,2]
[1] 2 5 8
有没有办法从列标签('B')中获取索引(2)?
Answers:
您可以通过grep
和获取索引colnames
:
grep("B", colnames(df))
[1] 2
或使用
grep("^B$", colnames(df))
[1] 2
只获得名为“ B”的列,而没有包含B的列,例如“ ABC”。
grep
您描述的方式。
将执行以下操作:
which(colnames(df)=="B")
grep
的另一个好处是,它使用正则表达式(因此您可以在您的姓氏中搜索任何模式)。要仅获取名称“ B” "^B$"
,请在grep中用作模式。^是字符串开头的元字符,$是字符串结尾的元字符。
which
。您可以直接使用df[names(df)=="B"]
grep("^fBodyAcc-meanFreq\\()-Z$",colnames(df))
或也grep("^fBodyAcc-meanFreq\\(\\)-Z$",colnames(df))
。
从上面的嵌合答案开始:
为了获得df中的所有列索引,所以我使用了:
which(!names(df)%in%c())
或存储在列表中:
indexLst<-which(!names(df)%in%c())