【问题标题】:Combining columns from different files into a single column in a new file in R将来自不同文件的列组合成 R 中新文件中的单个列
【发布时间】:2016-11-24 12:57:23
【问题描述】:

我已将多个文件中的选定列提取到与文件一样多的新数据集中。现在我需要将它们全部 rbind 到一个新文件的单个列中。

我正在使用以下命令

comments <- bind_rows(data1,data2,data3,data4,data5,data6,data7)

每个数据集都有一个列,但 colname 不同,我希望它们都在 cmets 数据集中的一个列中。

我得到的输出是 7 列而不是 1 列的 cmets 数据集,很难理解原因。请帮忙

【问题讨论】:

  • 试试bind_rows(lapply(mget(paste0("data", 1:7)), setNames, "Col1"))
  • 感谢使用警告 {In bind_rows_(x, .id) : Unequal factor levels: coercing to character}。您能否也请解释一下之前出了什么问题
  • 我尝试了一些示例数据,但没有显示 dplyr_0.5.0 的任何警告
  • 如果您有因子列,则预计会出现警告,因为级别会有所不同。最好有字符类,但我认为这应该仍然有效
  • 谢谢。所以我猜这里有不同的 colnames 问题

标签: r join dplyr


【解决方案1】:

我们可以在list 中一次性更改所有列名,然后应用bind_rows

library(dplyr)
lapply(mget(paste0("data", 1:7)), setNames, "Col1") %>% 
                     bind_rows()

或使用data.table 中的rbindlist,这将给出一个单独的列

library(data.table)
rbindlist(mget(paste0("data", 1:7))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多