使用dplyr

时间:2019-03-06 14:24:40

标签: r concatenation

我有一个像这样的df结构,但是有很多列和行:

 A   B   C   D 
 1   4   3   3

并且我想获得由单列组成的df,该列由前面所有元素的串联组成:

 A
 1
 B
 4
 C
 3
 D
 3

我该怎么办? 如果解决方案包括使用dplyr,那就更好了。

2 个答案:

答案 0 :(得分:3)

unlist并将其包装在data.frame

data.frame(col = unlist(df), row.names = NULL)

#  col
#1   A
#2   1
#3   B
#4   4
#5   C
#6   3
#7   D
#8   3

或将其设置为tibble

library(tibble)
tibble(col = unlist(df))

#   col  
#  <fct>
#1   A    
#2   1    
#3   B    
#4   4    
#5   C    
#6   3    
#7   D    
#8   3    

@Sotos提到的另一个选项是stack,但它需要类字符列

df[] <- lapply(df, as.character)
stack(df)[1]

数据

df <- read.table(text = "A   B   C   D 
                         1   4   3   3")

答案 1 :(得分:1)

tidyverse中,使用gather

library(tidyverse)
gather(df) %>% 
     select(value)