如何将数据框的多列合并?

3

我希望你能够将R中一个dataframe的多列合并成一个向量。最简单的方法是什么?

我的dataframe长这样:

X1    X2    X3     X4
----------------------
Paul  John  Cissy  Paul
Rob   Rob   Rob    Amanda

期望的输出为

X1
---
Paul
Rob
John
Rob
Cissy
Rob
Paul
Amanda
3个回答

3

使用unlist函数:

df <- data.frame(X1 = c("Paul","Rob"), X2 = c("John", "Rob"))
v <- unlist(df)

提供:

> str(v)

Factor w/ 3 levels "Paul","Rob","John": 1 2 3 2
- attr(*, "names")= chr [1:4] "X11" "X12" "X21" "X22"

您可以使用unname(v)来删除属性名称。


3

使用 stack 的一个想法

df5[] <- lapply(df5[], as.character) #make sure your columns are not factors
setNames(stack(df5)[1], 'X1')

#      X1
#1   Paul
#2    Rob
#3   John
#4    Rob
#5  Cissy
#6    Rob
#7   Paul
#8 Amanda

2

我们可以尝试

data.frame(X1 = c(as.matrix(df)))
#      X1
#1   Paul
#2    Rob
#3   John
#4    Rob
#5  Cissy
#6    Rob
#7   Paul
#8 Amanda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接