¿Cómo extraer ciertas columnas de una lista de marcos de datos en R?

Una lista anidada puede contener otras listas o varios objetos, arrays, vectores o marcos de datos como sus componentes. Cada componente se asigna a una posición de índice única en el lenguaje de programación R. Cualquier elemento se puede indexar fácilmente usando el operador [[]] , que se usa para hacer referencia a los índices particulares de la lista. Posteriormente, list_name[[ index ]] , obtendrá el componente almacenado en la posición de índice. En este escenario, este método devuelve el marco de datos en la posición del índice. 

La columna particular del marco de datos extraído se puede capturar usando df$col-name o df[[col-index]] , que obtiene la columna mencionada en forma de vector. La columna mencionada debe estar dentro de los límites, de lo contrario, se arroja un error. De forma predeterminada, los índices comienzan con 1. 

Sintaxis:

df [[ índice-col]] OR df$nombre-col

Ejemplo 1:

R

# declaring a dataframe
data_frame1 = data.frame(col1 = letters[1:4],
                         col2 = c(5:8) , col3 = TRUE)
print ("DataFrame1")
print (data_frame1)
 
# declaring a dataframe
data_frame2 = data.frame(col1 = c(6:9),
                         col2 = LETTERS[1:4])
print ("DataFrame2")
print (data_frame2)
 
combined_df <- list(data_frame1,data_frame2)
print ("Dataframe2 Column1")
col21 <- combined_df[[2]][[1]]
print (col21)

Producción

[1] "DataFrame1"
 col1 col2 col3
1    a    5 TRUE
2    b    6 TRUE
3    c    7 TRUE
4    d    8 TRUE
[1] "DataFrame2"
 col1 col2
1    6    A
2    7    B
3    8    C
4    9    D
[1] "Dataframe2 Column1"
[1] 6 7 8 9

El método list() puede contener más de dos componentes que se pueden apilar juntos. La columna del marco de datos puede ser un solo elemento o un vector de elementos atómicos. 

Ejemplo 2:

R

# declaring a dataframe
data_frame1 = data.frame(col1 = letters[1:4],
                         col2 = c(5:8) , col3 = TRUE)
print ("DataFrame1")
print (data_frame1)
 
# declaring a dataframe
data_frame2 = data.frame(col1 = c(6:9),
                         col2 = LETTERS[1:4])
print ("DataFrame2")
print (data_frame2)
 
# declaring a dataframe
data_frame3 = data.frame(C1 = FALSE, C2 = 1)
print ("DataFrame3")
print (data_frame3)
 
combined_df <- list(data_frame1,data_frame2,data_frame3)
print ("Dataframe3 Column2")
col32 <- combined_df[[3]][[2]]
print (col32)

Producción

[1] "DataFrame1"
 col1 col2 col3
1    a    5 TRUE
2    b    6 TRUE
3    c    7 TRUE
4    d    8 TRUE
[1] "DataFrame2"
 col1 col2
1    6    A
2    7    B
3    8    C
4    9    D
[1] "DataFrame3"
    C1 C2
1 FALSE  1
[1] "Dataframe3 Column2"
[1] 1

También se puede hacer referencia al nombre de la columna mediante el operador $, que se utiliza como operador de indexación en R. 

Ejemplo 3:

R

# declaring a dataframe
data_frame1 = data.frame(col1 = letters[1:4],
                         col2 = c(5:8) , col3 = TRUE)
print ("DataFrame1")
print (data_frame1)
 
# declaring a dataframe
data_frame2 = data.frame(col1 = c(6:9),
                         col2 = LETTERS[1:4])
print ("DataFrame2")
print (data_frame2)
 
# declaring a dataframe
data_frame3 = data.frame(C1 = FALSE, C2 = 1)
print ("DataFrame3")
print (data_frame3)
 
combined_df <- list(data_frame1,data_frame2,data_frame3)
print ("Dataframe1 Column1")
col11 <- combined_df[[1]]$col1
print (col11)

Producción

[1] "DataFrame1"
 col1 col2 col3
1    a    5 TRUE
2    b    6 TRUE
3    c    7 TRUE
4    d    8 TRUE
[1] "DataFrame2"
 col1 col2
1    6    A
2    7    B
3    8    C
4    9    D
[1] "DataFrame3"
    C1 C2
1 FALSE  1
[1] "Dataframe1 Column1"
[1] a b c d
Levels: a b c d

Publicación traducida automáticamente

Artículo escrito por mallikagupta90 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *