【问题标题】:How to see data from .RData file?如何从 .RData 文件中查看数据?
【发布时间】:2011-11-08 09:23:02
【问题描述】:

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

我必须加载一个 isfar.RData 文件才能在其他计算中使用它(在这里描述并不重要)。我想简单地看看这个 isfar.RData 文件中的数据看起来如何,例如它携带什么数字、列、行。

首先我加载我的文件:

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

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

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

【问题讨论】:

  • 如果您想保存/加载单个 R 对象,请查看使用互补函数 saveRDS()readRDS 的替代方法。

标签: r rdata


【解决方案1】:

我认为问题在于你 load isfar data.frame 但你用 load 返回的值覆盖它。

试试:

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

或者更一般的方式

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

【讨论】:

  • 您更通用的方法效果很好!但是,您能否进一步解释为什么使用ex&lt;- new.env()?这不是创造了一个新的环境吗?我的目标是将 .RData 包含在 GitLab 的项目中,而不是允许每个人访问数据。但是,您不会尝试创建一个新环境吗?谢谢!
  • @maycca 是的,它创建了新环境,所以它不会覆盖任何东西。如果您想共享数据,最好使用saveRDSreadRDS(或来自readrwrite_rdsread_rds)。然后将它们分配给一个对象而不是load(例如read.csv):x &lt;- readRDS("some_file.rds")
【解决方案2】:

你可以试试

isfar

这会将 isfar.Rdata 中的变量分配给 isfar 。完成这项任务后,您 可以使用 str(isfar) 或 ls(isfar) 或 head(isfar) 粗略查看 isfar。

【讨论】:

  • get(load('isfar.Rdata')) 似乎在没有赋值 isfar &lt;- 位的情况下创建了变量
  • get(load('xxx.Rdata')) 将检索存储在Rdata文件中的变量,变量名称与您保存Rdata文件时的名称相同,例如,save(yyy, file = xxx.Rdata'),变量名可能与文件名不同。我建议使用赋值,因为当你的工作区中有太多变量时,你可能会迷路。
  • 如果您将其分配给具有不同名称的东西,您最终会得到两个具有相同内容的变量,这会增加您的工作区中的变量过多
【解决方案3】:

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

另请注意,当使用默认行为时,加载将覆盖全局环境中与正在加载的文件中的名称相同的任何内容。如果您主要想检查文件中的内容,并可能使用该文件中的某些内容以及全局环境中的其他对象,那么最好使用 attach 函数或创建一个新环境 (new.env) 和使用 loadenvir 参数将文件加载到该环境中。

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

      如果您的 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)
      

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

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

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

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

          检查变量的方法有很多种。

          在命令提示符处键入它的名称以查看它的打印。然后看看strls.strsummaryViewunclass

          【讨论】:

          • 我不确定该文件中保存了什么,我假设它是一个表格。但即使保存了一个变量,我如何才能看到它的外观(数字)?
          【解决方案8】:

          您似乎不需要将其分配给变量。那一点神奇地发生了。事实上,将它分配给一个变量可能意味着您最终会得到两个具有相同数据的变量。

          get(load('C:/Users/isfar.Rdata'))
          

          或者如果它与你的 R 代码在同一个文件夹中...

          get(load('isfar.Rdata'))
          

          【讨论】:

            【解决方案9】:
            isfar<-load("C:/Users/isfar.RData") 
            if(is.data.frame(isfar)){
               names(isfar)
            }
            

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

            【讨论】:

              【解决方案10】:
              num <- seq(0, 5, length.out=10) #create object num
              num
              [1] 0.00 1.25 2.50 3.75 5.00
              save(num, file = 'num.RData') #save num ro RData
              rm(num) #remove num 
              load("num.RData") #load num from RData
              num
              [1] 0.00 1.25 2.50 3.75 5.00
              
              > isfar<-load("num.RData")
              > typeof(isfar)
               [1] "character"
              > isfar  #list objects saved in RData
               [1] "num"
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-11-26
                • 1970-01-01
                • 2011-12-03
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多