📜  将行转换为列 - R 编程语言(1)

📅  最后修改于: 2023-12-03 15:39:20.331000             🧑  作者: Mango

将行转换为列 - R 编程语言

在 R 编程语言中,有时候需要将数据的行转换为列,这种操作被称为“数据透视”或“转置”。这在数据处理和可视化中非常有用。

转置基础操作

转置是将数据中的行和列对调的操作。在 R 中,可以使用 t() 函数来轻松地实现转置。下面是一个示例:

# 创建一个矩阵
x <- matrix(1:6, nrow = 2)
x

#     [,1] [,2] [,3]
# [1,]    1    3    5
# [2,]    2    4    6

# 转置
t(x)

#     [,1] [,2]
# [1,]    1    2
# [2,]    3    4
# [3,]    5    6

在这个示例中,我们创建了一个 2 行 3 列的矩阵,并将其使用 t() 函数进行了转置。

数据透视

数据透视是将行转换为列的更高级形式。在 R 中,可以使用 tidyr 包中的 pivot_longer() 函数来实现数据透视。下面是一个示例:

# 加载 tidyr 包
library(tidyr)

# 创建一个数据框
df <- data.frame(id = c("A", "B", "C"),
                 year1 = c(100, 200, 300),
                 year2 = c(150, 250, 350),
                 year3 = c(200, 300, 400))
df

#   id year1 year2 year3
# 1  A   100   150   200
# 2  B   200   250   300
# 3  C   300   350   400

# 将 year1-year3 转化为“年份”列和“值”列
df_long <- pivot_longer(df, cols = c("year1", "year2", "year3"),
                        names_to = "year", values_to = "value")
df_long

#   id   year value
# 1  A year1   100
# 2  A year2   150
# 3  A year3   200
# 4  B year1   200
# 5  B year2   250
# 6  B year3   300
# 7  C year1   300
# 8  C year2   350
# 9  C year3   400

在这个示例中,我们使用 pivot_longer() 函数将数据框 df 中的 year1-year3 列转化为“年份”和“值”两列,并将转换后的数据框赋给 df_long 变量。

结论

在 R 中,使用 t() 函数可以简单地将数据的行和列进行转置。如果需要进行更高级的行列转置操作,可以使用 tidyr 包中的 pivot_longer() 函数来进行数据透视。这些函数是 R 中数据处理和可视化工作中不可或缺的工具。