Pregunta Para encontrar si existe una columna en el marco de datos o no


Tengo un data.frame con el nombre "abcframe"

     a  b  c
     1  1  1
     2  2  3

¿Cómo puedo averiguar si existe una columna o no en un marco de datos determinado? Por ejemplo, me gustaría encontrar si un columna d existe en el data.frame abcframe.


74
2018-04-23 06:58


origen


Respuestas:


Suponiendo que el nombre de su marco de datos es dat y que su nombre de columna para verificar es "d", puedes usar el %in% operador:

if("d" %in% colnames(dat))
{
  cat("Yep, it's in there!\n");
}

134
2018-04-23 07:03



Tiene varias opciones, incluido el uso %in% y grepl:

dat <- data.frame(a=1:2, b=2:3, c=4:5)
dat
  a b c
1 1 2 4
2 2 3 5

Para obtener los nombres de las columnas:

names(dat)
[1] "a" "b" "c"

Utilizar %in% para verificar la membresía:

"d" %in% names(dat)
[1] FALSE

Or use `grepl` to check for a match:

grepl("d", names(dat))
[1] FALSE FALSE FALSE

21
2018-04-23 07:09



Podrías usar any:

> names(dat)
[1] "a" "b" "c"
> any(names(dat) == 'b')
[1] TRUE
> any(names(dat) == 'B')
[1] FALSE

1
2017-12-20 22:56