【问题标题】:"parse_dt" not resolved from current namespace (lubridate)“parse_dt”未从当前命名空间解析(lubridate)
【发布时间】:2014-01-25 21:57:36
【问题描述】:

我开始使用 lubridate 包收到此错误消息:

as.Date(ymd_hms("2014-1-1 12:31:15"))

.Call("parse_dt", x, format, TRUE) 中的错误: “parse_dt”未从当前命名空间解析(lubridate)

我以前从未遇到过这种情况,而且我只能在长脚本中使用lubridate deep 时创建此错误(实际上是一个包中的几个嵌套函数) - 我不知道是哪一行导致了问题(我已经调试了几个小时没有任何运气)。

此外,它似乎只在我使用 Rstudio 时发生,而不是在我在 Rgui 中运行相同代码时发生。

一旦发生,我必须重新启动 R 以使 lubridate 再次工作。此外,在它发生之后,我的全局环境中有这个对象:

> ls()
[1] "oldLC"
> oldLC
[1] "English_Australia.1252"

我知道我应该发布可以重现的错误,但我自己无法重现此错误,并希望在哪里查找指针!

R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1]  LC_COLLATE=English_Australia.1252  LC_CTYPE=English_Australia.1252   
[3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C                      
[5] LC_TIME=English_Australia.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] HIEv_0.3        RODBC_1.3-10    maptools_0.8-27 sp_1.0-14       stringr_0.6.2  
[6] plyr_1.8        RCurl_1.95-4.1  bitops_1.0-6    rjson_0.2.13    lubridate_1.3.3
[11] roxygen2_3.0.0 

loaded via a namespace (and not attached):
[1] brew_1.0-6      codetools_0.2-8 digest_0.6.4    foreign_0.8-57  grid_3.0.2     
[6] lattice_0.20-24 memoise_0.1     tools_3.0.2   

【问题讨论】:

    标签: r rstudio lubridate


    【解决方案1】:

    我还没有找到对此处描述的行为的解释。但是,我找到了一个最小的示例来复制该问题以及防止其在我的脚本中再次发生的方法。

    我创建了以下名为“CODE-TEST-Lubridate2.R”的文件。

    ## LOAD PACKAGES
    library(plyr) # Important to load plyr before dplyr due to function masking.
    library(dplyr)
    library(lubridate)
    
    dateTemp <- mdy("01-01-1910")
    
    ## Cleanup
    pkgs <- names(sessionInfo()$otherPkgs)
    pkgs <- paste('package:', pkgs, sep = "")
    lapply(pkgs, detach, character.only = TRUE, unload = TRUE, force = TRUE)
    

    当我获取文件时,使用以下命令再次获取文件,

    source("data_raw/CODE-TEST-Lubridate2.R")
    

    发生错误,终止执行,我收到以下错误消息:

    Error in .Call("parse_dt", x, format, TRUE, FALSE) : 
    "parse_dt" not resolved from current namespace (lubridate)
    

    当我从清理脚本中删除 package:plyrpackage:dplyr 时,

     ## Cleanup
    exceptPkgs <- c("plyr", "dplyr")
    pkgs <- names(sessionInfo()$otherPkgs)
    pkgs <- pkgs[ which( !(names(sessionInfo()$otherPkgs) %in% exceptPkgs ) ) ]
    pkgs <- paste('package:', pkgs, sep = "")
    lapply(pkgs, detach, character.only = TRUE, unload = TRUE, force = TRUE)
    

    意思是我将plyrdplyr按原样加载,不再发生错误。

    (使用 R 3.2.4、RStudio 0.99.896、dplyr 0.4.3、lubridate 1.5.6、plyr 1.8.3)

    【讨论】:

    • 感谢您提出一个老问题 - 我确认您的代码重现了该问题。
    猜你喜欢
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 2013-11-22
    • 2022-01-20
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    相关资源
    最近更新 更多