数据帧列切换

时间:2018-03-22 08:56:37

标签: r dataframe

我想知道是否有办法使用函数在另一个列下切换列。基本上,如果我有一个数据帧如下:

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

3 个答案:

答案 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