【问题标题】:How to convert .Rdata format into text file format如何将 .Rdata 格式转换为文本文件格式
【发布时间】:2021-12-08 07:02:48
【问题描述】:

我是 R 的新手,我正在尝试将 .Rdata 格式文件转换为逗号分隔的文本文件格式。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: r export-to-csv file-conversion


    【解决方案1】:
    load("yourData.RData")
    ls() #returns a list of all the objects you just loaded (and anything else in your environment)
    write.csv(theItemOfInterestFromYourDRadataFileAsThereMayBeMoreThanOneThingInthere,
      file="yourCSV.csv")
    

    【讨论】:

    • write.csv 必须使用您要在调用中写入 csv 的变量的名称。它可能不一定是“yourData”
    • 嘿,它只将一条记录写入 csv 文件。只是数据集的名称。
    • @SOaddict; str(yourData) 返回什么?
    【解决方案2】:

    .RData 文件可以包含多个任何类的对象。

    如果您的文件包含超过 1 个 data.frame-like 类的对象,那么以下应该可以工作

    resave <- function(file){
      e <- new.env(parent = emptyenv())
      load(file, envir = e)
      objs <- ls(envir = e, all.names = TRUE)
      for(obj in objs) {
        .x <- get(obj, envir =e)
        message(sprintf('Saving %s as %s.csv', obj,obj) )
        write.csv(.x, file = paste0(obj, '.csv'))
      }
    }
    
      resave('yourData.RData')
    

    您可以将呼叫更改为write.csv 来做您想做的事。如果您的对象在使用 write.csv 时表现不佳,那么您不应该尝试这个。

    【讨论】:

    • 我收到此错误:Error in data.frame(2` = list(pos = c(6506L, 6601L, 21801L, 21811L, 21902L, : 参数暗示不同的行数:7670、9729、114 , 2422 调用:重新保存 ... as.data.frame -> as.data.frame.list -> eval -> eval -> data.frame`
    猜你喜欢
    • 2014-01-20
    • 2021-12-28
    • 2012-02-29
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多