Marco de datos R: Cómo crear, agregar, seleccionar & Subconjunto

Tabla de contenido:

Anonim

¿Qué es un marco de datos?

Un 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, caracteres, factores, etc.).

En este tutorial, aprenderá:

  • ¿Qué es un marco de datos?
  • Cómo crear un marco de datos
  • Agregar una columna al marco de datos
  • Seleccionar una columna de un marco de datos
  • Subconjunto de un marco de datos

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 R crear un marco de datos y nombrar las columnas con name () 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
  • stringsAsFactors : convierte la cadena en 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 variablesa <- 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 framedf <- data.frame(a,b,c,d)df

Producción:

## a b c d## 1 1 book TRUE 2.5## 2 2 pen TRUE 8.0## 3 3 textbook TRUE 10.0## 4 4 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 las funciones (). Verifique el ejemplo de R create dataframe a continuación:

# Name the data framenames(df) <- c('ID', 'items', 'store', 'price')df

Producción:

## 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 structurestr(df)

Producción:

## '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 SLICE los valores de un marco de datos. Seleccionamos las filas y columnas para volver al corchete precedidas por el nombre del marco de datos.

Un marco de datos se compone de filas y columnas, gl [A, B]. A representa las filas y B las columnas. Podemos dividir ya sea especificando las filas y / o columnas.

De la imagen 1, la parte izquierda representa las filas y la parte derecha son las 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 la fila 1 en la columna 2
  • La flecha verde selecciona las filas 1 a 2
  • La flecha roja selecciona la columna 1
  • La flecha azul selecciona las filas 1 a 3 y las 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 en blanco la parte derecha, R seleccionará todas las columnas .

Podemos ejecutar el código en la consola:

## Select row 1 in column 2df[1,2]

Producción:

## [1] book## Levels: book pen pencil_case textbook
## Select Rows 1 to 2df[1:2,]

Producción:

## ID items store price## 1 10 book TRUE 2.5## 2 20 pen FALSE 8.0
## Select Columns 1df[,1]

Producción:

## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4df[1:3, 3:4]

Producción:

## 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 namedf[, c('ID', 'store')]

Producción:

## 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 vectorquantity <- c(10, 35, 40, 5)# Add `quantity` to the `df` data framedf$quantity <- quantitydf

Producción:

## 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: El número de elementos en el vector debe ser igual al número de elementos en el marco de datos. Ejecutando la siguiente declaración para agregar una columna al marco de datos R

quantity <- c(10, 35, 40)# Add `quantity` to the `df` data framedf$quantity <- quantity

Da error:

Error in `$<-.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 uso 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 IDdf$ID

Producción:

## [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 crear un subconjunto en función de si una determinada condición fue verdadera o no.

Usamos la función subset ().

subset(x, condition)arguments:- x: data frame used to perform the subset- condition: define the conditional statement

Queremos devolver solo los artículos con precio superior a 10, podemos hacer:

# Select price above 5subset(df, subset = price > 5)

Producción:

ID items store price2 20 pen FALSE 83 30 textbook TRUE 104 40 pencil_case FALSE 7