R Data Frame

Un Data frame se puede entender como lo que comúnmente llamamos "tabla".

Un Data frame es una estructura de datos del lenguaje R, es una lista bidimensional especial.

En un Data frame, cada columna tiene un nombre de columna único, las longitudes son todas iguales, los tipos de datos de la misma columna deben ser consistentes, y los tipos de datos de diferentes columnas pueden ser diferentes.

El Data frame en R se crea con la función data.frame(), el formato de sintaxis es el siguiente:

data.frame(…, row.names = NULL, check.rows = FALSE,
           check.names = TRUE, fix.empty.names = TRUE,
           stringsAsFactors = default.stringsAsFactors())
  • …: vector de columna, puede ser de cualquier tipo (carácter, numérico, lógico), generalmente en la forma tag = value, también puede ser value.
  • row.names: nombres de fila, el valor predeterminado es NULL, se puede establecer como un único número, cadena o un vector de cadenas y números.
  • check.rows: comprueba si los nombres de las filas y las longitudes son consistentes.
  • check.names: comprueba si los nombres de las variables del data frame son válidos.
  • fix.empty.names: establece si a los parámetros sin nombre se les asigna un nombre automáticamente.
  • stringsAsFactors: valor booleano, si los caracteres se convierten en factores, el valor predeterminado de factory-fresh es TRUE, y se puede modificar configurando la opción (stringsAsFactors=FALSE).

A continuación se crea un data frame simple, que incluye nombre, número de empleado y salario mensual:

Ejemplo

table = data.frame(
Nombre= c("Zhang San", "Li Si"),
Número de empleado= c("001","002"),
Salario mensual= c(1000, 2000)
   
)
print(table) # Ver los datos de la tabla

Al ejecutar el código anterior, el resultado es:

姓名 工号 月薪
1 张三  001 1000
2 李四  002 2000

La estructura de datos del data frame se puedestr()mostrar mediante la función:

Ejemplo

table = data.frame(
Nombre= c("Zhang San", "Li Si"),
Número de empleado= c("001","002"),
Salario mensual= c(1000, 2000)
)
# Obtener la estructura de datos
str(table)

Al ejecutar el código anterior, el resultado es:

'data.frame':   2 obs. of  3 variables:
 $ 姓名: chr  "张三" "李四"
 $ 工号: chr  "001" "002"
 $ 月薪: num  1000 2000

summary()Se puede mostrar la información de resumen del data frame:

Ejemplo

table = data.frame(
Nombre= c("Zhang San", "Li Si"),
Número de empleado= c("001","002"),
Salario mensual= c(1000, 2000)
   
)
# Mostrar el resumen
print(summary(table))  

Al ejecutar el código anterior, el resultado es:

姓名               工号                月薪     
Length:2           Length:2           Min.   :1000  
Class :character   Class :character   1st Qu.:1250  
Mode  :character   Mode  :character   Median :1500  
                                      Mean   :1500  
                                      3rd Qu.:1750  
                                      Max.   :2000  

También podemos extraer las columnas especificadas:

Ejemplo

table = data.frame(
Nombre= c("Zhang San", "Li Si"),
Número de empleado= c("001","002"),
Salario mensual= c(1000, 2000)
)
# Extraer las columnas especificadas
result <- data.frame(table$Nombre,table$Salario mensual)
print(result)

Al ejecutar el código anterior, el resultado es:

table.姓名 table.月薪
1       张三       1000
2       李四       2000

El siguiente formato muestra las dos primeras filas:

Ejemplo

table = data.frame(
Nombre= c("Zhang San", "Li Si",Wang Wu),
Número de empleado= c("001","002","003"),
Salario mensual= c(1000, 2000,3000)
)
print(table)
# Extraer las dos primeras filas
print("--- Salida de las primeras dos filas ----")
result <- table[1:2,]
print(result)

Al ejecutar el código anterior, el resultado es:

姓名 工号 月薪
1 张三  001 1000
2 李四  002 2000
3 王五  003 3000
[1] "---输出前面两行----"
  姓名 工号 月薪
1 张三  001 1000
2 李四  002 2000

Podemos leer los datos de una columna de una fila especificada en forma de coordenadas. A continuación, leemos los datos de las columnas 1 y 2 de las filas 2 y 3:

Ejemplo

table = data.frame(
Nombre= c("Zhang San", "Li Si",Wang Wu),
Número de empleado= c("001","002","003"),
Salario mensual= c(1000, 2000,3000)
)
# Leer los datos de las columnas 1 y 2 de las filas 2 y 3:
result <- table[c(2,3),c(1,2)]
print(result)

Al ejecutar el código anterior, el resultado es:

姓名 工号
2 李四  002
3 王五  003

Ampliar Data Frame

Podemos ampliar un data frame existente. En el siguiente ejemplo añadimos una columna de departamento:

Ejemplo

table = data.frame(
Nombre= c("Zhang San", "Li Si",Wang Wu),
Número de empleado= c("001","002","003"),
Salario mensual= c(1000, 2000,3000)
)
# Añadir columna de departamento
table$Departamento<- c(Operaciones,Tecnología,Edición)

print(table)

Al ejecutar el código anterior, el resultado es:

姓名 工号 月薪 部门
1 张三  001 1000 运营
2 李四  002 2000 技术
3 王五  003 3000 编辑

Podemos usarcbind()la función para combinar varios vectores en un data frame:

Ejemplo

# Crear vectores
sites <- c("Google","Ejemplo","Taobao")
likes <- c(222,111,123)
url <- c("www.google.com","www.example.com","www.taobao.com")

# Combinar los vectores en un data frame
addresses <- cbind(sites,likes,url)

# Ver el data frame
print(addresses)

Al ejecutar el código anterior, el resultado es:

     sites    likes url             
[1,] "Google" "222" "www.google.com"
[2,] "Ejemplo" "111" "www.example.com"
[3,] "Taobao" "123" "www.taobao.com"

Si desea combinar dos data frames, puede usarrbind()la función:

Ejemplo

table = data.frame(
Nombre= c("Zhang San", "Li Si",Wang Wu),
Número de empleado= c("001","002","003"),
Salario mensual= c(1000, 2000,3000)
)
newtable = data.frame(
Nombre= c(Xiaoming, Blanquito),
Número de empleado= c("101","102"),
Salario mensual= c(5000, 7000)
)
# Combinar los dos data frames
result <- rbind(table,newtable)
print(result)

Al ejecutar el código anterior, el resultado es:

姓名 工号 月薪
1 张三  001 1000
2 李四  002 2000
3 王五  003 3000
4 小明  101 5000
5 小白  102 7000
Otras extensiones