Объединить несколько столбцов в один с помощью dplyr - PullRequest
0 голосов
/ 06 марта 2019

У меня есть df, структурированный так, но с большим количеством столбцов и строк:

 A   B   C   D 
 1   4   3   3

и я хочу получить df с одним столбцом, сделанный путем объединения всех предыдущих элементов:

 A
 1
 B
 4
 C
 3
 D
 3

Как я могу это сделать? Лучше, если решения включают использование dplyr.

Ответы [ 2 ]

3 голосов
/ 06 марта 2019

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 голос
/ 06 марта 2019

В tidyverse, используйте gather

library(tidyverse)
gather(df) %>% 
     select(value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...