我正在尝试在 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
使用“附加”,然后使用带有名称参数的“ls”。就像是:
attach("al.rda")
ls("file:al.rda")
数据文件现在很可能位于位置 2 的搜索路径中。做:
search()
ls(pos=2)
为启蒙。键入保存在 al.rda 中的任何对象的名称现在都会得到它,除非您在搜索路径位置 1 中有某些东西,但 R 可能会警告您一些关于掩盖另一事物(如果有的话)的消息。
但是我现在怀疑您在 RData 文件中没有保存任何内容。两个原因:
我可以复制这种情况。如果你做 save(file="foo.RData") 那么你会得到一个空的 RData 文件 - 你可能打算做的是 save.image(file="foo.RData") 保存所有对象。
你的这个 .rda 文件有多大?如果它低于 100 字节(我的空 RData 文件长 42 字节),那么我怀疑这就是发生的事情。
我不得不重新安装 R ...不知何故它已损坏。我期望的简单命令
load("al.rda")
终于奏效了。
我有一个类似的问题,它没有重新安装 R 就解决了。例如做
load("al.rda)
工作正常,但是如果你这样做
a <- load("al.rda")
将无法工作。
该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 或类似网站)?
我通常使用 save 仅保存单个对象,然后使用以下实用程序方法将该对象检索到使用 load 的给定变量名中,但检索到临时命名空间以避免覆盖现有对象。也许它对其他人也有帮助:
load_first_object <- function(fname){
e <- new.env(parent = parent.frame())
load(fname, e)
return(e[[ls(e)[1]]])
}
该方法当然可以扩展为还返回命名对象和对象列表,但这个简单的版本对我来说是最有用的。