【问题标题】:Problems reading an .rdb file in R在 R 中读取 .rdb 文件时出现问题
【发布时间】:2021-01-24 16:47:01
【问题描述】:

我正在尝试读取 .rdb 文件以收集其中包含的 R 代码。但是,使用下面的代码时会出现如下错误,请看:

> lazyLoad(filebase="treeTaper",envir=parent.frame())
NULL
> 

该消息似乎警告说没有可以读取的文件,但是有文件。在这种情况下,我怎样才能读取这个文件,然后收集必要的信息?

在下面提供的链接中是文件

注意:目前treeTaper包已经失效了,是这个原因吗?

install.packages("treeTaper")
Installing package into ‘C:/Users/Documents/R/win-library/4.0’
(as ‘lib’ is unspecified)
Warning in install.packages :
  package ‘treeTaper’ is not available (for R version 4.0.2)

【问题讨论】:

  • 你能提供这个treeTaper cran 包的链接吗?

标签: r database package global-variables read-data


【解决方案1】:

lazyLoad 函数主要通过副作用起作用,对我而言,这意味着您不应该依赖(也不要气馁)NULL 输出。

例如,

ls()
# character(0)
lazyLoad("c:/Users/r2/R/win-library/4.0/yaml/help/yaml", envir = .GlobalEnv)
# NULL
ls()
# [1] "as.yaml"    "read_yaml"  "write_yaml" "yaml.load" 
as.yaml
# \title{ Convert an R object into a YAML string }\name{as.yaml}\alias{as.yaml}\keyword{ data }\keyword{ manip }\description{
#   Convert an R object into a YAML string
# }\usage{
#   as.yaml(x, line.sep = c("\n", "\r\n", "\r"), indent = 2, omap = FALSE,
#           column.major = TRUE, unicode = TRUE, precision = getOption('digits'),
#           indent.mapping.sequence = FALSE, handlers = NULL)
# }.......

如果您希望对象在特定位置可用,那么最好控制它的位置。 (您使用的envir=parent.frame() 似乎会使用帮助文档的这些承诺对象污染调用环境。)

e <- new.env(parent = emptyenv())
lazyLoad("c:/Users/r2/R/win-library/4.0/yaml/help/yaml", envir = e)
# NULL
ls(e)
# [1] "as.yaml"    "read_yaml"  "write_yaml" "yaml.load" 
e$as.yaml
# \title{ Convert an R object into a YAML string }\name{as.yaml}\alias{as.yaml}\keyword{ data }\keyword{ manip }\description{
#   Convert an R object into a YAML string
# }\usage{
#   as.yaml(x, line.sep = c("\n", "\r\n", "\r"), indent = 2, omap = FALSE,
#           column.major = TRUE, unicode = TRUE, precision = getOption('digits'),
#           indent.mapping.sequence = FALSE, handlers = NULL)
# }......

【讨论】:

  • 谢谢@r2evans ...但它会在我的档案中如何?你能提出解决方案吗?
  • 你说的“我的档案”是什么意思?您的意思是如何使用 URL 而不是本地文件系统来做到这一点?
  • 对不起,我理解了你的推理!非常感谢。
猜你喜欢
  • 2014-03-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-01
  • 1970-01-01
相关资源
最近更新 更多