提问人:Álvaro A. Gutiérrez-Vargas 提问时间:1/12/2022 更新时间:1/12/2022 访问量:976
R:将多列堆叠成一列,同时将列名保留在行中 [duplicate]
R: stack multiple columns into single column while keeping column names in rows [duplicate]
问:
假设我有以下 data.frame ():df
c1 <- c(1,2,3,4);c2 <- c(5,6,7,8);c3 <- c(9,10,11,12)
df <- data.frame(c1, c2,c3)
# c1 c2 c3
# 1 1 5 9
# 2 2 6 10
# 3 3 7 11
# 4 4 8 12
我想将每一列堆叠在一列中,但将每列的标识符保留在新变量()中。df
id
values <- c(c1,c2,c3)
wanted <- as.data.frame(values )
wanted$id <- c(rep("c1", 4),rep("c2", 4),rep("c3", 4))
# values id
# 1 1 c1
# 2 2 c1
# 3 3 c1
# 4 4 c1
# 5 5 c2
# 6 6 c2
# 7 7 c2
# 8 8 c2
# 9 9 c3
# 10 10 c3
# 11 11 c3
# 12 12 c3
答:
3赞
ThomasIsCoding
1/12/2022
#1
我们可以使用stack
> stack(df)
values ind
1 1 c1
2 2 c1
3 3 c1
4 4 c1
5 5 c2
6 6 c2
7 7 c2
8 8 c2
9 9 c3
10 10 c3
11 11 c3
12 12 c3
下一个:一次透视多组列
评论
library(tidyr) pivot_longer(df, cols=everything())