R语言数据框
- 数据框的定义和结构:数据框是 R 语言中的二维数据结构,类似于表格,拥有行和列,每列可以是不同的数据类型。
- 创建和访问数据框:使用
data.frame()
函数创建数据框,可通过[ ]
、[[ ]]
或$
符号访问特定的列。 - 合并数据框的方法:使用
rbind()
函数垂直合并数据框,使用cbind()
函数水平合并数据框,合并时需注意数据框的列数或行数需要匹配。
数据框(Data Frame)是一种二维数据结构,可以以表格格式存储数据。
数据框有行和列,每列可以是不同的向量。不同的向量可以是不同的数据类型。
在学习数据框之前,请确保您了解 R 向量。
在 R 中创建数据框
在 R 中,我们使用 data.frame()
函数来创建数据框 。
data.frame()
函数的语法是
dataframe1 <- data.frame(
first_col = c(val1, val2, ...),
second_col = c(val1, val2, ...),
...
)
这里,
first_col
- 一个包含val1, val2, ...
的向量,数据类型相同second_col
- 另一个包含val1, val2, ...
的向量,数据类型相同,依此类推
让我们看一个例子,
# 创建一个数据框
dataframe1 <- data.frame (
Name = c("Juan", "Alcaraz", "Simantha"),
Age = c(22, 15, 19),
Vote = c(TRUE, FALSE, TRUE)
)
print(dataframe1)
输出
Name Age Vote
1 Juan 22 TRUE
2 Alcaraz 15 FALSE
3 Simantha 19 TRUE
在上面的例子中,我们使用了 data.frame()
函数创建了一个名为 dataframe1
的数据框。注意传递给 data.frame()
的参数,
data.frame (
Name = c("Juan", "Alcaraz", "Simantha"),
Age = c(22, 15, 19),
Vote = c(TRUE, FALSE, TRUE)
)
这里,Name
、Age
和 Vote
分别是字符串、数值和布尔型的列名。
最后,以表格格式打印出的数据。
访问数据框列
有多种方法可以从数据框中提取列。我们可以在 R 中使用 [ ]
、[[ ]]
或 $
来访问数据框的特定列。例如,
# 创建一个数据框
dataframe1 <- data.frame (
Name = c("Juan", "Alcaraz", "Simantha"),
Age = c(22, 15, 19),
Vote = c(TRUE, FALSE, TRUE)
)
# 在 [ ] 中传递索引号
print(dataframe1[1])
# 在 [[ ]] 中传递列名
print(dataframe1[["Name"]])
# 使用 $ 操作符和列名
print(dataframe1$Name)
输出
Name
1 Juan
2 Alcaraz
3 Simantha
[1] "Juan" "Alcaraz" "Simantha"
[1] "Juan" "Alcaraz" "Simantha"
在上面的例子中,我们创建了一个名为 dataframe1
的数据框,包含 Name
、Age
、Vote
三列。
这里,我们使用了不同的操作符来访问 dataframe1
的 Name
列。
使用 [[ ]]
或 $
访问数据的方式相似。然而,它们与 [ ]
有所不同,使用 [ ]
会返回一个数据框,而其他两种方式会将其简化为一个向量并返回向量。
合并数据框
在 R 中,我们使用 rbind()
和 cbind()
函数将两个数据框合并在一起。
rbind()
- 垂直合并两个数据框cbind()
- 水平合并两个数据框
使用 rbind() 垂直合并
如果我们想要垂直合并两个数据框,这两个数据框的列名必须相同。例如,
# 创建一个数据框
dataframe1 <- data.frame (
Name = c("Juan", "Alcaraz"),
Age = c(22, 15)
)
# 创建另一个数据框
dataframe2 <- data.frame (
Name = c("Yiruma", "Bach"),
Age = c(46, 89)
)
# 垂直合并两个数据框
updated <- rbind(dataframe1, dataframe2)
print(updated)
输出
Name Age
1 Juan 22
2 Alcaraz 15
3 Yiruma 46
4 Bach 89
这里,我们使用了 rbind()
函数垂直合并了两个数据框:dataframe1
和 dataframe2
。
使用 cbind() 水平合并
cbind()
函数用于水平合并两个或更多的数据框。例如,
# 创建一个数据框
dataframe1 <- data.frame (
Name = c("Juan", "Alcaraz"),
Age = c(22, 15)
)
# 创建另一个数据框
dataframe2 <- data.frame (
Hobby = c("Tennis", "Piano")
)
# 水平合并两个数据框
updated <- cbind(dataframe1, dataframe2)
print(updated)
输出
Name Age Hobby
1 Juan 22 Tennis
2 Alcaraz 15 Piano
这里,我们使用了 cbind()
水平合并了两个数据框。
注意:合并两个或多个数据框时,每个向量的元素数量必须相等,否则我们会得到一个错误:“参数暗示行或列的数量不同”。
R 中数据框的长度
在 R 中,我们使用 length()
函数来找出数据框中的列数。例如,
# 创建一个数据框
dataframe1 <- data.frame (
Name = c("Juan", "Alcaraz", "Simantha"),
Age = c(22, 15, 19),
Vote = c(TRUE, FALSE, TRUE)
)
cat("总元素个数:", length(dataframe1))
输出
总元素个数: 3
这里,我们使用了 length()
来找出 dataframe1
中的总列数。由于有 3 列,length()
函数返回 3