如何查看.RData文件中的数据?


72

我看到了一些类似的问题,并且尝试自己解决,但我做不到。这是我的问题:

我必须加载一个isfar.RData文件才能在其他计算中使用它(此处不进行描述很重要)。我想简单地看一下isfar.RData文件中的数据外观,例如它携带的数字,列和行。

首先,我加载文件:

isfar<-load("C:/Users/isfar.RData") 

当我尝试通过ls()函数获取此信息(我正在使用Rcmdr)或加载后在开始时标记isfar时,出现在输出窗口中:[1]“ isfar”而不是表。为什么?

非常感谢,我感谢所有答案!希望我理解的不是我的母语。


1
如果您想保存/加载单个R对象,请使用补充功能saveRDS()和来查看另一种方法readRDS
马特L.17年

Answers:


78

我认为问题是您使用了load isfardata.frame,但是您使用所返回的值覆盖了它load

尝试以下任一方法:

load("C:/Users/isfar.RData") 
head(isfar)

或更一般的方法

load("C:/Users/isfar.RData", ex <- new.env())
ls.str(ex) 

您更一般的方法效果很好!但是,请您进一步说明为什么使用ex<- new.env()?这不会创造一个新的环境吗?我的目的是将.RData包含在GitLab的项目中,而不是让所有人都可以访问数据。但是,您不是会创建一个新环境吗?谢谢!
maycca

1
@maycca是的,它创建了新的环境,因此它不会覆盖任何内容。如果你希望共享的数据,然后更好地使用saveRDSreadRDS(或readr包装write_rdsread_rds)。然后,而不是load将它们分配给一个对象(例如read.csv):x <- readRDS("some_file.rds")
Marek

34

你可以试试

isfar <-get(load('c:/users/isfar.Rdata'))

这会将isfar.Rdata中的变量分配给isfar。完成此分配后,可以使用str(isfar)或ls(isfar)或head(isfar)大致了解isfar。


9

查看帮助页面load。负载返回的是创建的对象的名称,因此您可以查看isfar的内容以查看创建了哪些对象。没有其他显示的事实ls()表明您的文件中可能没有存储任何内容。

还要注意,当使用默认行为时,加载将覆盖全局环境中与正在加载的文件中具有相同名称的所有内容。如果您主要想检查文件中的内容,并可能在全局环境中将文件中的内容与其他对象一起使用,则最好使用该attach函数或创建一个新环境(new.env)并将文件加载到该环境中使用的envir参数load


7

这可能更适合作为评论,但是我没有足够的声誉,所以我在这里输入。
值得一提的是load()无论您如何命名.Rdata文件,函数都将保留最初保存的对象名称

请检查函数中使用的data.frame对象的名称save()。如果您使用的是RStudio,则可以检查右上方的面板“ Global Environment-Data”,以找到要加载的数据的名称。


1

听起来.RData文件中唯一存储的变量是名为的变量isfar

您确定要保存表格吗?该命令应该是:

save(the_table, file = "isfar.RData")

检查变量有很多方法。

在命令提示符下键入它的名称以查看它的打印。再来看一下strls.strsummaryViewunclass


我不确定文件中保存了什么,我假设它是一个表。但是,即使保存了一个变量,如何查看其外观(数字)?
伊娃

1

您也可以通过RStudio中“全局环境”下的“导入数据集”选项卡导入数据。使用下拉列表中的文本数据选项,然后从文件夹中选择.RData文件。导入完成后,它将在控制台中显示数据。希望这可以帮助。


1

如果Rdata文件中有很多变量,并且不想让它们使您的全局环境混乱,请创建一个新环境并将所有数据加载到该新环境中。

load(file.path("C:/Users/isfar.RData"), isfar_env <- new.env() )

# Access individual variables in the RData file using '$' operator
isfar_env$var_name 

# List all of the variable names in RData:
ls(isfar_env)

0
isfar<-load("C:/Users/isfar.RData") 
if(is.data.frame(isfar)){
   names(isfar)
}

如果isfar是一个数据框,则将打印出其列的名称。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.