在启动错误时自动从脚本加载R中的映射

时间:2013-09-08 11:25:20

标签: r map startup

我一直试图让这个工作没有任何运气(我是R的新手,所以不知道该怎么做太多,并且一直在关注例子)。基本上我创建了一个R脚本,它会在运行时自动加载一个地图,保存为.R文件:

library(maps)
library(maptools)
library(mapdata)
map('worldHires', 
       c('UK', 'Ireland', 'Isle of Man','Isle of Wight'), 
        xlim=c(-11,3), ylim=c(49,60.9))

我希望在我打开RGui时自动执行此操作而无需转到加载脚本,然后选择全部运行。我已经阅读了关于编辑我已经完成的Rprofile.site file的内容,并且我添加了一个条目:

.First <- function(){
    library(maps)
    library(maptools)
    library(mapdata)
    map('worldHires', 
        c('UK', 'Ireland', 'Isle of Man','Isle of Wight'), 
        xlim=c(-11,3), ylim=c(49,60.9))
}

然而,当我启动R时,我认为它加载了库,但随后它说:

Error in maptype(database) : could not find function "data"

并且没有生成地图。但是,当我手动加载脚本然后按下全部运行时,它完全正常。

我在这里做错了吗? .First函数是否仅加载包?什么会使它工作?我也尝试在第一个函数中使用source(script location),并给出相同的错误。

1 个答案:

答案 0 :(得分:0)

您遇到的问题是.First脚本只能使用base包中的函数,除非已明确加载包。所以在你的情况下,你需要加载

  • utils代表data函数。
  • graphics代表par函数。

把它放在一起给出了:

.First <- function() {
    library(utils); library(graphics)

    library(maps)
    library(maptools)
    library(mapdata)
    map('worldHires', 
        c('UK', 'Ireland', 'Isle of Man','Isle of Wight'), 
        xlim=c(-11,3), ylim=c(49,60.9))
}