我有一个纯粹的数字数据框,我想要将它们的列堆叠(连接在一起)。 foo <- matrix(rnorm(100),20,5)
foo <- data.frame(foo)
bar <- stack(foo)
做得很好:
stack
但是,我不喜欢values
提供的默认列名,即id
和colnames(bar) <- c("x","y")
。当然,我可以用
true
但我想知道是否有任何函数可以让我定义生成(堆叠)数据框的列名。
答案 0 :(得分:5)
您可以使用melt
库中的reshape2
功能:
library(reshape2)
bar <- melt(foo, value.name = "x", variable.name = "y")
P.S:
melt
包中的data.table
功能。答案 1 :(得分:3)
使用gather
包中的tidyr
函数尝试此操作:
library(tidyr)
gather(foo, y, x)