从数据框中的标签获取列索引

假设我们有以下数据框架:

> df ABC 1 1 2 3 2 4 5 6 3 7 8 9 

我们可以从索引中select“B”列:

 > df[,2] [1] 2 5 8 

有没有办法从列标签('B')获取索引(2)?

你可以通过grepcolnames得到索引:

 grep("B", colnames(df)) [1] 2 

或使用

 grep("^B$", colnames(df)) [1] 2 

只能得到名为“B”的列,而不包含例如“ABC”的B的列。

以下将做到这一点:

 which(colnames(df)=="B") 

我想看到所有的colnames索引,因为我需要做一个复杂的列重排 ,所以我打印的colnames作为一个数据框。 rownames是指数。

 as.data.frame(colnames(df)) 1 A 2 B 3 C