数据框是一种二维数据结构,可以表格形式存储数据。
数据框具有行和列,每列可以是一个不同的向量。不同的向量可以具有不同的数据类型。
在学习数据框之前,请确保您了解 *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, ...
值向量,依此类推
让我们看一个例子,
# Create a data frame
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
分别是 String
、Numeric
和 Boolean
类型向量的列名。
最后,以表格形式表示的数据被打印出来。
访问数据框列
有不同的方法可以从数据框中提取列。我们可以使用 [ ]
、[[ ]]
或 $
来访问 R 中数据框的特定列。例如,
# Create a data frame
dataframe1 <- data.frame (
Name = c("Juan", "Alcaraz", "Simantha"),
Age = c(22, 15, 19),
Vote = c(TRUE, FALSE, TRUE)
)
# pass index number inside [ ]
print(dataframe1[1])
# pass column name inside [[ ]]
print(dataframe1[["Name"]])
# use $ operator and column 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() 垂直合并
如果我们要垂直合并两个数据框,则这两个数据框的列名必须相同。例如,
# create a data frame
dataframe1 <- data.frame (
Name = c("Juan", "Alcaraz"),
Age = c(22, 15)
)
# create another data frame
dataframe2 <- data.frame (
Name = c("Yiruma", "Bach"),
Age = c(46, 89)
)
# combine two data frames vertically
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()
函数水平合并两个或更多数据框。例如,
# create a data frame
dataframe1 <- data.frame (
Name = c("Juan", "Alcaraz"),
Age = c(22, 15)
)
# create another data frame
dataframe2 <- data.frame (
Hobby = c("Tennis", "Piano")
)
# combine two data frames horizontally
updated <- cbind(dataframe1, dataframe2)
print(updated)
输出
Name Age Hobby 1 Juan 22 Tennis 2 Alcaraz 15 Piano
在这里,我们使用了 cbind()
水平合并了两个数据框。
注意:两个或更多合并数据框的每个向量的项目数必须相等,否则我们将收到错误:参数暗示行或列数不同
。
R 中数据框的长度
在 R 中,我们使用 length()
函数来查找数据框中的列数。例如,
# Create a data frame
dataframe1 <- data.frame (
Name = c("Juan", "Alcaraz", "Simantha"),
Age = c(22, 15, 19),
Vote = c(TRUE, FALSE, TRUE)
)
cat("Total Elements:", length(dataframe1))
输出
Total Elements: 3
在这里,我们使用了 length()
来查找 dataframe1 中的总列数。由于有 3 列,length()
函数返回 3。