studio - superponer graficas en r
Obtener el índice de columna de la etiqueta en un marco de datos (5)
Esta parece ser una forma eficiente de listar vars con el número de columna:
cbind(names(df))
Salida:
[,1]
[1,] "A"
[2,] "B"
[3,] "C"
A veces me gusta copiar variables con posición en mi código, así que uso esta función:
varnums<- function(x) {w=as.data.frame(c(1:length(colnames(x))),
paste0(''# '',colnames(x)))
names(w)= c("# Var/Pos")
w}
varnums(df)
Salida:
# Var/Pos
# A 1
# B 2
# C 3
Digamos que tenemos el siguiente marco de datos:
> df
A B C
1 1 2 3
2 4 5 6
3 7 8 9
Podemos seleccionar la columna ''B'' de su índice:
> df[,2]
[1] 2 5 8
¿Hay alguna manera de obtener el índice (2) de la etiqueta de la columna (''B'')?
Lo siguiente lo hará:
which(colnames(df)=="B")
Quería ver todos los índices para los colnames porque tenía que hacer una reorganización de columna complicada, así que imprimí los colnames como un dataframe. Los nombres de fila son los índices.
as.data.frame(colnames(df))
1 A
2 B
3 C
puedes obtener el índice a través de grep
y colnames
:
grep("B", colnames(df))
[1] 2
o usar
grep("^B$", colnames(df))
[1] 2
solo obtener las columnas llamadas "B" sin las que contienen una B, por ejemplo, "ABC".
siguiendo la respuesta quimérica anterior: también necesitaba obtener todos los índices de columna en el df , así que utilicé:
which(!names(df)%in%c())
o almacenar en una lista:
indexLst<-which(!names(df)%in%c())