Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
178 views
in Technique[技术] by (71.8m points)

r - Concatenate multiple columns into one with dplyr

I have a df structured like this, but with a large number of columns and rows:

 A   B   C   D 
 1   4   3   3

and I want to obtain a df with a single column, made by the concatenation of all the previous elements:

 A
 1
 B
 4
 C
 3
 D
 3

How can I do? Better if solutions comprise the use of dplyr.

question from:https://stackoverflow.com/questions/65652237/stacking-columns-within-one-dataframe

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

unlist and wrap it in 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

Or making it as 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    

Another option mentioned by @Sotos is stack but it needs columns of class characters

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

data

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...