Data.frame()
在R语言中,data.frame()
函数用于创建数据框(data frame)。
函数定义:
data.frame(..., row.names = NULL, check.rows = FALSE, check.names = TRUE, stringsAsFactors = default.stringsAsFactors())
...
:列向量或其他数据框,用于构建数据框的列。每个参数可以是向量、矩阵、数组或其他数据结构。
- row.names
:指定行名(可选)。可以是字符向量或NULL。默认情况下,行名为数字序列。
- check.rows
:逻辑值,表示是否检查输入的行数。默认为FALSE,表示不检查。
- check.names
:逻辑值,表示是否检查列名的合法性。默认为TRUE,表示检查。
- stringsAsFactors
:逻辑值,表示是否将字符列作为因子处理。默认为根据全局选项options(stringsAsFactors)
来确定。
示例:
以下是一些使用data.frame()
函数创建数据框的示例:
# 示例1:创建简单数据框
name <- c("Alice", "Bob", "Charlie")
age <- c(25, 30, 35)
height <- c(165, 175, 185)
df <- data.frame(name, age, height)
print(df)
# 输出:
# name age height
# 1 Alice 25 165
# 2 Bob 30 175
# 3 Charlie 35 185
# 示例2:创建具有行名的数据框
name <- c("Alice", "Bob", "Charlie")
age <- c(25, 30, 35)
height <- c(165, 175, 185)
df <- data.frame(name, age, height, row.names = c("P1", "P2", "P3"))
print(df)
# 输出:
# name age height
# P1 Alice 25 165
# P2 Bob 30 175
# P3 Charlie 35 185
# 示例3:创建具有因子列的数据框
name <- c("Alice", "Bob", "Charlie")
age <- c(25, 30, 35)
gender <- c("Female", "Male", "Male")
df <- data.frame(name, age, gender, stringsAsFactors = TRUE)
print(df)
# 输出:
# name age gender
# 1 Alice 25 Female
# 2 Bob 30 Male
# 3 Charlie 35 Male
#
# 注意:gender列被默认转换为因子类型
在上述示例中,我们展示了使用data.frame()
函数创建数据框的不同情况。
在示例1中,我们创建了一个简单的数据框df
,使用name
、age
和height
作为列向量构建数据框。函数将这些列合并为一个数据框,并打印出数据框的内容。
在示例2中,我们创建了一个具有行名的数据框df
,使用name
、age
和height
作为列向量构建数据框,并使用row.names
参数指定了行名。函数将这些列合并为一个数据框,并打印出数据框的内容。
在示例3中,我们创建了一个具有因子列的数据框df
,使用name
、age
和gender
作为列向量构建数据框,并使用stringsAsFactors
参数将字符列gender
转换为因子类型。函数将这些列合并为一个数据框,并打印出数据框的内容。
通过使用data.frame()
函数,我们可以根据给定的列向量创建数据框,并根据需要指定行名、检查行数和列名的合法性,以及处理字符列是否转换为因子类型等。数据框是R语言中常用的数据结构,用于处理和分析结构化数据。
常见创建形式¶
注意每个列后面要加逗号。
# 创建数据库数据
database_data <- data.frame(
ID = c(1, 2, 3, 4, 5),
Name = c("John", "Emma", "Michael", "Sophia", "William"),
Age = c(25, 28, 32, 27, 30),
Country = c("USA", "Canada", "UK", "Australia", "Germany"),
Salary = c(50000, 60000, 70000, 55000, 65000),
stringsAsFactors = FALSE
)
# 打印输出数据库数据
print(database_data)