📅  最后修改于: 2023-12-03 15:24:20.852000             🧑  作者: Mango
当你需要将多个 R DataFrame 中的列堆叠在一起时,可以使用 tidyr
包中的 gather
函数。
下面是 gather
函数的基本语法:
gather(data, key, value, ..., na.rm = FALSE, convert = FALSE)
其中,data
表示需要堆叠的 DataFrame,key
表示堆叠后的列名,value
表示堆叠后的值列名。...
表示需要堆叠的列名,多个列名可以用逗号分隔。na.rm
和 convert
分别表示是否删除缺失值和是否自动转换数据类型。
以下是一个例子,演示如何堆叠多个列:
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.rm
和 convert
分别表示是否删除缺失值和是否自动转换数据类型。
以下是一个堆叠全部列的例子:
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 中的多个列或全部列。通过本文的介绍和示例,希望你能更加熟练地使用这个函数。