7

我正在尝试在 r 中加载一个 .rda 文件,该文件是已保存的数据框。我不记得它的名字了。

我试过了

a<-load("al.rda")

这不让我对 a 做任何事情。我得到错误

Error:object 'a' not found

我也尝试过使用 = 符号。

如何加载这个 .rda 文件以便我可以使用它?

我用 load("al.rda) 重新盯着 R,我知道得到以下错误

Error: C stack usage is too close to the limit
4

5 回答 5

5

使用“附加”,然后使用带有名称参数的“ls”。就像是:

attach("al.rda")
ls("file:al.rda")

数据文件现在很可能位于位置 2 的搜索路径中。做:

search()
ls(pos=2)

为启蒙。键入保存在 al.rda 中的任何对象的名称现在都会得到它,除非您在搜索路径位置 1 中有某些东西,但 R 可能会警告您一些关于掩盖另一事物(如果有的话)的消息。

但是我现在怀疑您在 RData 文件中没有保存任何内容。两个原因:

  1. 你说你没有收到错误信息
  2. load 表示没有加载任何内容

我可以复制这种情况。如果你做 save(file="foo.RData") 那么你会得到一个空的 RData 文件 - 你可能打算做的是 save.image(file="foo.RData") 保存所有对象。

你的这个 .rda 文件有多大?如果它低于 100 字节(我的空 RData 文件长 42 字节),那么我怀疑这就是发生的事情。

于 2011-12-17T21:16:14.263 回答
5

我不得不重新安装 R ...不知何故它已损坏。我期望的简单命令

load("al.rda")

终于奏效了。

于 2011-12-18T05:52:51.057 回答
5

我有一个类似的问题,它没有重新安装 R 就解决了。例如做

load("al.rda) 工作正常,但是如果你这样做 a <- load("al.rda")将无法工作。

于 2016-09-26T23:47:23.403 回答
4

load函数确实返回它加载的变量列表。我怀疑您在加载“al.rda”时实际上会出错。加载时 R 究竟输出了什么?

它应该如何工作的示例:

d <- data.frame(a=11:13, b=letters[1:3])
save(d, file='foo.rda')
a <- load('foo.rda')
a # prints "d"

可以肯定的是,检查load您实际调用的函数是否是原始函数:

find("load") # should print "package:base"

编辑由于现在加载文件时出现错误,因此它可能以某种方式损坏。试试这个并说出它打印的内容:

file.info("a1.rda") # Prints the file size etc...
readBin("a1.rda", "raw", 50) # reads first 50 bytes from the file

如果无法访问该文件,就很难进行更多调查……也许您可以以某种方式共享该文件(http://www.filedropper.com 或类似网站)?

于 2011-12-17T21:23:11.040 回答
1

我通常使用 save 仅保存单个对象,然后使用以下实用程序方法将该对象检索到使用 load 的给定变量名中,但检索到临时命名空间以避免覆盖现有对象。也许它对其他人也有帮助:

load_first_object <- function(fname){
    e <- new.env(parent = parent.frame())
    load(fname, e)
    return(e[[ls(e)[1]]])
}

该方法当然可以扩展为还返回命名对象和对象列表,但这个简单的版本对我来说是最有用的。

于 2016-07-26T11:04:00.877 回答