【问题标题】:Creating a list/vector from first column od multiple data从多个数据的第一列创建列表/向量
【发布时间】:2014-11-27 09:40:54
【问题描述】:

我总共有 21 个 csv 文件我想加载到 R。所以我做了:

list_of_data = list.files(pattern="*.csv")
tbl_met = lapply(list_of_data, read.csv)

不能给你dput,因为它的数据太多......

我想要做的是列出所有数据集中第一列中的所有名称。合并为一个向量/列表但有两个问题:

  • 首先这些文件中的所有列用“;”分隔或没有任何分隔标记...我是否必须查看这些文件并以相同的方式将它们全部分隔?

  • 第二个问题是名称可能重复,我想将它们从列表中删除。

你知道怎么做吗?我应该提供更多数据吗?如果是,请告诉我该怎么做。

【问题讨论】:

    标签: r


    【解决方案1】:

    我有点怀疑在某些文件中没有分隔标记的事实。您将如何分隔列?至少所有列名都相同吗?

    但是你能试试这个,看看它是否有什么好处吗?

    library(data.table)
    list_of_data = list.files(pattern="*.csv")
    tbl_met = lapply(list_of_data, fread)
    DT=rbindlist(l=tbl_met,use.names = FALSE);
    print(unique(DT[,1,with=FALSE]))
    

    谢谢

    【讨论】:

    • > DT=rbindlist(tbl_met,use.names = FALSE); Error in rbindlist(tbl_met, use.names = FALSE) : unused argument (use.names = FALSE) 这是出现的错误。对于某些表,我可以使用此代码来加载它read.csv ("table.csv"),但对于其他表,我需要像 sep=";" 这样的分隔标记。那就是如果我想单独加载它们...
    • 我已经编辑了答案,但我不确定它是否会起作用。您如何解决缺少分隔标记的问题?
    • 还是同样的错误。我只是像在评论中向您展示的那样加载表格。它们在csv 文件中分开。我将手动更改文件以在列之间添加分隔标记。这应该很容易吧?
    【解决方案2】:

    我找到了解决方案。可能这不是最简单的,但它确实有效。 首先,我必须将所有 csv 文件转换为相同的模式。使用 R 轻松完成任务。

    稍后:

    list_of_data = list.files(pattern="*.csv")
    tbl_met = lapply(list_of_data, read.csv)
    tbl <- rbindlist(tbl_met) ## binding all of the tables in the list by row
    
    vec_names <- tbl$locus ## name of the column with names which I am interested in
    vec <- unique(vec_names) ## removing the duplicates
    

    干得好!

    【讨论】:

    • 干得好。感谢您发布您的解决方案。
    猜你喜欢
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 2022-01-08
    • 2022-08-16
    • 2017-09-09
    • 1970-01-01
    相关资源
    最近更新 更多