跳到主要内容

R语言数据框

提示
  1. 数据框的定义和结构:数据框是 R 语言中的二维数据结构,类似于表格,拥有行和列,每列可以是不同的数据类型。
  2. 创建和访问数据框:使用 data.frame() 函数创建数据框,可通过 [ ][[ ]]$ 符号访问特定的列。
  3. 合并数据框的方法:使用 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)
)

这里,NameAgeVote 分别是字符串、数值和布尔型的列名。

最后,以表格格式打印出的数据。

访问数据框列

有多种方法可以从数据框中提取列。我们可以在 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 的数据框,包含 NameAgeVote 三列。

这里,我们使用了不同的操作符来访问 dataframe1Name 列。 使用 [[ ]]$ 访问数据的方式相似。然而,它们与 [ ] 有所不同,使用 [ ] 会返回一个数据框,而其他两种方式会将其简化为一个向量并返回向量。

合并数据框

在 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() 函数垂直合并了两个数据框:dataframe1dataframe2

使用 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