如何将 .Rdata 格式转换为文本文件格式

Posted

技术标签:

【中文标题】如何将 .Rdata 格式转换为文本文件格式【英文标题】:How to convert .Rdata format into text file format 【发布时间】:2012-10-22 18:31:30 【问题描述】:

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

【问题讨论】:

【参考方案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` 我也在这里问过:***.com/questions/23413728/…

以上是关于如何将 .Rdata 格式转换为文本文件格式的主要内容,如果未能解决你的问题,请参考以下文章

文本文档格式下,如何把一列数据改为连续的行数据?

如何检查TXT文本是否ANSI编码格式的?

关于“任意编码”的txt格式的文本文档“批量转换”为同一种编码的文本文件,要能自动识别源编码(200分)

在VB中,如果检测到某文本文件为非UTF8格式则自动转换为UTF8格式?

更改文本文档默认编码UTF-8转换ANSI?

MATLABUTF-8编码文本输出