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
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
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
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
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
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
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
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
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
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 7000Otras extensiones