Получить индекс столбца из метки во фрейме данных



скажем, у нас есть следующий фрейм данных:



> df
A B C
1 1 2 3
2 4 5 6
3 7 8 9


мы можем выбрать столбец " B " из своего индекса:



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


есть ли способ получить индекс (2) из метки столбца ('B')?

517   5  
r

5 ответов:

вы можете получить указатель через grep и colnames:

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

или использовать

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

чтобы получить только столбцы с именем "B" без тех, кто содержит B, например, "ABC".

это сделает следующее:

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

Я хотел увидеть все индексы для colnames, потому что мне нужно было сделать сложный перестановка столбцов, поэтому я напечатал colnames как фрейм данных. Имена строк-это индексы.

as.data.frame(colnames(df))

1 A
2 B
3 C

после химерные это ответ выше: мне также нужно было получить все индексы столбцов в df, так что я использовал:

which(!names(df)%in%c()) 

или хранить в списке:

indexLst<-which(!names(df)%in%c())

это, кажется, эффективный способ перечислить vars с номером столбца:

cbind(names(df)) 

выход:

     [,1]
[1,] "A" 
[2,] "B" 
[3,] "C" 

иногда мне нравится копировать переменные с позицией в мой код, поэтому я использую эту функцию:

varnums<- function(x) {w=as.data.frame(c(1:length(colnames(x))),
          paste0('# ',colnames(x)))
names(w)= c("# Var/Pos")
w}
varnums(df)

выход:

# Var/Pos
# A         1
# B         2
# C         3

Comments

    Ничего не найдено.