Determinar los tipos de datos de las columnas de un marco de datos.

Resuelto stackoverflowuser2010 asked hace 54 años • 11 respuestas

Estoy usando R y he cargado datos en un marco de datos usando read.csv(). ¿Cómo determino el tipo de datos de cada columna en el marco de datos?

stackoverflowuser2010 avatar Jan 01 '70 08:01 stackoverflowuser2010
Aceptado

Lo mejor que puedes hacer para empezar es utilizar ?str(). Para explorar algunos ejemplos, hagamos algunos datos:

set.seed(3221)  # this makes the example exactly reproducible
my.data <- data.frame(y=rnorm(5), 
                      x1=c(1:5), 
                      x2=c(TRUE, TRUE, FALSE, FALSE, FALSE),
                      X3=letters[1:5])

La solución de @Wilmer E Henao H es muy simplificada:

sapply(my.data, class)
        y        x1        x2        X3 
"numeric" "integer" "logical"  "factor" 

El uso str()le brinda esa información además de ventajas adicionales (como los niveles de sus factores y los primeros valores de cada variable):

str(my.data)
'data.frame':  5 obs. of  4 variables:
$ y : num  1.03 1.599 -0.818 0.872 -2.682
$ x1: int  1 2 3 4 5
$ x2: logi  TRUE TRUE FALSE FALSE FALSE
$ X3: Factor w/ 5 levels "a","b","c","d",..: 1 2 3 4 5

El enfoque de @Gavin Simpson también está simplificado, pero proporciona información ligeramente diferente a la siguiente class():

sapply(my.data, typeof)
       y        x1        x2        X3 
"double" "integer" "logical" "integer"

Para obtener más información sobre class, typeofy el hijo del medio, modeconsulte este excelente hilo SO: Un estudio exhaustivo de los tipos de cosas en R. 'mode', 'class' y 'typeof' son insuficientes .

gung - Reinstate Monica avatar Jan 14 '2014 22:01 gung - Reinstate Monica
sapply(yourdataframe, class)

Donde yourdataframe es el nombre del marco de datos que estás usando

Wilmer E. Henao avatar Jan 14 '2014 22:01 Wilmer E. Henao