Marco de datos R: cómo crear, agregar, seleccionar y crear subconjuntos
¿Qué es un marco de datos?
A marco de datos es una lista de vectores que tienen la misma longitud. Una matriz contiene solo un tipo de datos, mientras que un marco de datos acepta diferentes tipos de datos (numéricos, de caracteres, de factores, etc.).
Cómo crear un marco de datos
Podemos crear un marco de datos en R pasando la variable a,b,c,d a la función data.frame(). Podemos crear un marco de datos y nombrar las columnas con nombre() y simplemente especificar el nombre de las variables.
data.frame(df, stringsAsFactors = TRUE)
Argumentos:
- df: Puede ser una matriz para convertir como un marco de datos o una colección de variables para unir
- cadenasAsFactors: convierte cadena a factor de forma predeterminada
Podemos crear un marco de datos en R para nuestro primer conjunto de datos combinando cuatro variables de la misma longitud.
# Create a, b, c, d variables a <- c(10,20,30,40) b <- c('book', 'pen', 'textbook', 'pencil_case') c <- c(TRUE,FALSE,TRUE,FALSE) d <- c(2.5, 8, 10, 7) # Join the variables to create a data frame df <- data.frame(a,b,c,d) df
Salida:
## a b c d ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0 ## 3 30 textbook TRUE 10.0 ## 4 40 pencil_case FALSE 7.0
Podemos ver que los encabezados de las columnas tienen el mismo nombre que las variables. Podemos cambiar el nombre de la columna en R con los nombres de función(). Consulte el ejemplo de creación de marco de datos de R a continuación:
# Name the data frame names(df) <- c('ID', 'items', 'store', 'price') df
Salida:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0 ## 3 30 textbook TRUE 10.0 ## 4 40 pencil_case FALSE 7.0
# Print the structure str(df)
Salida:
## 'data.frame': 4 obs. of 4 variables: ## $ ID : num 10 20 30 40 ## $ items: Factor w/ 4 levels "book","pen","pencil_case",..: 1 2 4 3 ## $ store: logi TRUE FALSE TRUE FALSE ## $ price: num 2.5 8 10 7
De forma predeterminada, el marco de datos devuelve variables de cadena como factor.
Marco de datos de corte
Es posible CORTAR valores de un marco de datos. Seleccionamos las filas y columnas a regresar entre paréntesis precedidas por el nombre del marco de datos.
Un marco de datos se compone de filas y columnas, df[A, B]. A representa las filas y B las columnas. Podemos dividir especificando las filas y/o columnas.
De la imagen 1, la parte izquierda representa la filas y la parte derecha es la columnas. Tenga en cuenta que el símbolo : significa a. Por ejemplo, 1:3 pretende seleccionar valores de 1 a 3.
En el siguiente diagrama mostramos cómo acceder a diferentes selecciones del marco de datos:
- La flecha amarilla selecciona el fila 1 plg visión de conjunto 2
- La flecha verde selecciona el filas 1 a 2
- La flecha roja selecciona el visión de conjunto 1
- La flecha azul selecciona el filas 1 a 3 y columnas 3 a 4
Tenga en cuenta que, si dejamos la parte izquierda en blanco, R seleccionará todas las filas. Por analogía, si dejamos la parte derecha en blanco, R seleccionará todas las columnas.
Podemos ejecutar el código en la consola:
## Select row 1 in column 2 df[1,2]
Salida:
## [1] book ## Levels: book pen pencil_case textbook
## Select Rows 1 to 2 df[1:2,]
Salida:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0
## Select Columns 1 df[,1]
Salida:
## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4 df[1:3, 3:4]
Salida:
## store price ## 1 TRUE 2.5 ## 2 FALSE 8.0 ## 3 TRUE 10.0
También es posible seleccionar las columnas con sus nombres. Por ejemplo, el siguiente código extrae dos columnas: ID y tienda.
# Slice with columns name df[, c('ID', 'store')]
Salida:
## ID store ## 1 10 TRUE ## 2 20 FALSE ## 3 30 TRUE ## 4 40 FALSE
Agregar una columna al marco de datos
También puede agregar una columna a un marco de datos. Debe usar el símbolo $ para agregar la variable R del marco de datos y agregar una columna a un marco de datos en R.
# Create a new vector quantity <- c(10, 35, 40, 5) # Add `quantity` to the `df` data frame df$quantity <- quantity df
Salida:
## ID items store price quantity ## 1 10 book TRUE 2.5 10 ## 2 20 pen FALSE 8.0 35 ## 3 30 textbook TRUE 10.0 40 ## 4 40 pencil_case FALSE 7.0 5
Nota: La cantidad de elementos del vector debe ser igual a la cantidad de elementos del marco de datos. Ejecute la siguiente instrucción para agregar una columna al marco de datos R
quantity <- c(10, 35, 40) # Add `quantity` to the `df` data frame df$quantity <- quantity
Da error:
Error in ` lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40)) replacement has 3 rows, data has 4
Seleccionar una columna de un marco de datos
A veces, necesitamos almacenar una columna de un marco de datos para usarla en el futuro o realizar una operación en una columna. Podemos usar el signo $ para seleccionar la columna de un marco de datos.
# Select the column ID df$ID
Salida:
## [1] 1 2 3 4
Subconjunto de un marco de datos
En la sección anterior, seleccionamos una columna completa sin condición. Es posible subconjunto en función de si una determinada condición era cierta o no.
Usamos la función subconjunto().
subset(x, condition) arguments: - x: data frame used to perform the subset - condition: define the conditional statement
Queremos devolver solo los artículos con un precio superior a 10, podemos hacer:
# Select price above 5 subset(df, subset = price > 5)
Salida:
ID items store price 2 20 pen FALSE 8 3 30 textbook TRUE 10 4 40 pencil_case FALSE 7