[英]Concatenate multiple columns into one with dplyr
I have a df structured like this, but with a large number of columns and rows:我有一个这样结构的 df,但有大量的列和行:
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:我想获得一个单列的 df,由所有以前的元素串联而成:
A
1
B
4
C
3
D
3
How can I do?我能怎么做? Better if solutions comprise the use of dplyr.如果解决方案包括使用 dplyr,则更好。
unlist
and wrap it in data.frame
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
Or making it as tibble
或者把它做成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 @Sotos 提到的另一个选项是stack
但它需要类字符列
df[] <- lapply(df, as.character)
stack(df)[1]
data数据
df <- read.table(text = "A B C D
1 4 3 3")
In tidyverse
, use gather
在tidyverse
,使用gather
library(tidyverse)
gather(df) %>%
select(value)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.