我有一个包含 3 列和多行的数据框。我想拆分数据框,以便只有一行并且值是按顺序排列的(所以本质上是单行 csv)。
我的数据框如下所示:
**Subject Module ID**
History WW2 1
English Literature 2
Maths Algebra 3
我想要实现的是一行看起来像这样并按以下顺序:
History, WW2, 1, English, Literature, 2, Maths, Algebra, 3
我可以使用 excel 进行剪切和粘贴,但想知道 R 是否有快速的方法。
任何帮助都会很棒!
谢谢。
最佳答案
使用paste
与 collapse
去做这个。 unlist
从您的数据框中创建一个向量,但它是按列执行的,因此您需要一个 t
先转置它。
df <- read.table(textConnection("Subject Module ID
History WW2 1
English Literature 2
Maths Algebra 3"),
stringsAsFactors=FALSE, header=TRUE)
> paste(unlist(t(df)), collapse=",")
[1] "History,WW2,1,English,Literature,2,Maths,Algebra,3"
编辑以添加您在评论中要求的数据框版本...
df1 <- read.csv(text=paste(unlist(t(df)), collapse=","), header=FALSE,
stringsAsFactors=FALSE)
names(df1) <- rep(names(df), nrow(df))
> df1
Subject Module ID Subject Module ID Subject Module ID
1 History WW2 1 English Literature 2 Maths Algebra 3
这使得列名不唯一,这并不是真正可取的。
关于R - 将多行并排连接成一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35990164/