📜  如何在 R 中堆叠 DataFrame 列?(1)

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

如何在 R 中堆叠 DataFrame 列?

当你需要将多个 R DataFrame 中的列堆叠在一起时,可以使用 tidyr 包中的 gather 函数。

堆叠多个列

下面是 gather 函数的基本语法:

gather(data, key, value, ..., na.rm = FALSE, convert = FALSE)

其中,data 表示需要堆叠的 DataFrame,key 表示堆叠后的列名,value 表示堆叠后的值列名。... 表示需要堆叠的列名,多个列名可以用逗号分隔。na.rmconvert 分别表示是否删除缺失值和是否自动转换数据类型。

以下是一个例子,演示如何堆叠多个列:

library(tidyr)

# 创建一个 DataFrame
df <- data.frame(
  ID = 1:3,
  Age = c(20, 30, 40),
  Height = c(175, 165, 180),
  Weight = c(70, 80, 90)
)

# 堆叠 Age、Height、Weight 列
df_gathered <- gather(df, key = "measurement", value = "value", Age, Height, Weight)

在上面的例子中,我们先创建了一个 DataFrame,包含四列(ID、Age、Height 和 Weight)。然后使用 gather 函数将 Age、Height 和 Weight 列堆叠在一起,命名保存的堆叠后的 DataFrame 为 df_gathered

堆叠全部列

如果需要将 DataFrame 中所有列都堆叠在一起,可以使用 gather 函数的另一个形式,如下所示:

gather_all(data, key, value, ..., na.rm = FALSE, convert = FALSE)

其中,data 表示需要堆叠的 DataFrame,key 表示堆叠后的列名,value 表示堆叠后的值列名。... 表示需要忽略的列名,可以使用 "-" 表示忽略所有列。na.rmconvert 分别表示是否删除缺失值和是否自动转换数据类型。

以下是一个堆叠全部列的例子:

library(tidyr)

# 创建一个 DataFrame
df <- data.frame(
  ID = 1:3,
  Age = c(20, 30, 40),
  Height = c(175, 165, 180),
  Weight = c(70, 80, 90)
)

# 堆叠全部列
df_gathered <- gather_all(df, key = "measurement", value = "value", -ID)

在上面的例子中,我们先创建了一个 DataFrame,包含四列(ID、Age、Height 和 Weight)。使用 gather_all 函数将除 ID 列以外的所有列堆叠在一起,命名保存的堆叠后的 DataFrame 为 df_gathered

结论

使用 tidyr 包中的 gather 函数,可以方便地堆叠 DataFrame 中的多个列或全部列。通过本文的介绍和示例,希望你能更加熟练地使用这个函数。