【问题标题】:Merge/ Collapse entire data frame into a single column in R将整个数据框合并/折叠成 R 中的一列
【发布时间】:2015-11-27 08:24:58
【问题描述】:

输入数据框可以有不同数量的列。 输出数据框应该只有一个列,它是输入数据框中所有可用列的串联。

示例:输入

╔══════╦══════╗
║ a    ║ b    ║
╠══════╬══════╣
║blue  ║ 5636 ║
║red   ║  148 ║
║yellow║  101 ║
║green ║  959 ║
╚══════╩══════╝

期望的输出

╔═══════════╗
║    a-b    ║
╠═══════════╣
║blue-5636  ║
║red-148    ║
║yellow-101 ║
║green-959  ║
╚═══════════╝

此示例有 2 列,输入数据框可以有任意数量的列,因此解决方案不应要求列名。

我尝试使用转换,但这需要指定列。

outputDF=transform(inputDF,xyz=paste0(inputDF[,1],'-',inputDF[,2]))

有没有一种方法可以将所有输入列折叠成一个由“-”分隔的列

【问题讨论】:

    标签: r transformation


    【解决方案1】:

    我们可以使用do.call

     v1 <- do.call(paste, c(inputDF, list(sep='-')))
     v2 <- paste(names(inputDF), collapse='-')
     setNames(data.frame(v1),v2)
     #         a-b
     #1  blue-5636
     #2    red-148
     #3 yellow-101
     #4  green-959
    

    【讨论】:

    • @user3243478 更新了帖子。也许这会有所帮助。
    猜你喜欢
    • 2021-04-11
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 2022-11-18
    • 2018-01-16
    相关资源
    最近更新 更多