R - 将多行并排连接成一行

标签 r excel split concatenation

我有一个包含 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 是否有快速的方法。

任何帮助都会很棒!
谢谢。

最佳答案

使用pastecollapse去做这个。 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/

相关文章:

r - 如何在ggplot2 map 中绘制geom_line特征?

r - tidyr reshape tibble 而不扩展.grid

r - 自动修改复杂字符向量

excel - 如何在excel中使用IF和SUM来计算连续的唯一条目?

vba - 通过Access VBA将公式写入Excel

sql - 获取 SQL 字符串中的父路径

r - 求最大值时如何从集合中获取行号?

excel - VBA,避免溢出错误,修剪工作表功能

c - 如何使用多个分隔符分割输入?

r - 拆分文本以创建新变量