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.

Marco de datos de corte

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.

Marco de datos de corte

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 en el vector debe ser igual a la cantidad de elementos en el marco de datos. Ejecutando el siguientewing declaración para agregar 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 uso futuro o realizar operaciones 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