我想知道是否有办法使用函数在另一个列下切换列。基本上,如果我有一个数据帧如下:
a <- data.frame("A" = 1:5, "B" = 2:6)
A B
1 1 2
2 2 3
3 3 4
4 4 5
5 5 6
我想得到类似的东西:
A
1 1
2 2
3 3
4 4
5 5
6 2
7 3
8 4
9 5
10 6
答案 0 :(得分:2)
您可以通过stack
:
a <- data.frame("A" = 1:5, "B" = 2:6)
stack(a)
b <- stack(a)
dplyr::select(b, values)
values
1 1
2 2
3 3
4 4
5 5
6 2
7 3
8 4
9 5
10 6
你当然可以写一个快捷功能:
library(dplyr)
stack_cols <- function(df){
stack(df) %>%
select(values)
}
stack_cols(a)
values
1 1
2 2
3 3
4 4
5 5
6 2
7 3
8 4
9 5
10 6
答案 1 :(得分:2)
您可以使用unlist
:
DF <- data.frame(A=unlist(a))
> DF
A
A1 1
A2 2
A3 3
A4 4
A5 5
B1 2
B2 3
B3 4
B4 5
B5 6
答案 2 :(得分:2)
一种非常简单明了的方式可能是:
df <- data.frame(A=c(a$A, a$B))
> df
A
1 1
2 2
3 3
4 4
5 5
6 2
7 3
8 4
9 5
10 6