:第一次安装或使用软件包时运行代码
我正在为一个对R知之甚少的客户忙着编写一个软件包。鉴于他们复杂的数据结构,我需要在R中建立一个“数据库”,其中包含从其他公司获得的一组电子表格中获得的大量信息。 由于他们无法在他们的计算机上安装SQL等(ICT有一些电源控制问题...),我已经根据特定的目录结构在R中编写了仿真。 现在我想自动运行它,但只是第一次加载包。 就像.First.lib
,但是然后.VeryFirst
。
第一次加载软件包时如何加载一段代码的任何想法? 我无法在手册中的任何地方找到它,所以所有的指针都是值得欢迎的。
它在手册中。
基本上你有两个代码路径:
没有NAMESPACE的软件包可以使用函数.First.lib()
,通常来自R/zzz.R
带有NAMESPACE的包可以使用函数.onLoad()
,通常也可以从R/zzz.R
。
我已经使用这个技巧,比如在加载时有一个包更新本身(!!)。 这需要在实际加载二进制代码之前不使用NAMESPACE并运行utils::update.packages()
。
怎么样为他们指定一个路径和命名来放入电子表格。 您可以递归目录以获取更新和文件。 我这样做是为了一个类似的问题。
2010 08.xls 2010 09.xls
您可以使用readline()来提示新的数据范围,并使其只能输入新的月份。 如果目录发生了变化,教人们如何setwd()或使用脚本来更新它自己并不难,因为脚本会检查个人/公司服务器上的某些内容。
他们是否真的加载R来运行包? 还是全部是命令行?
链接地址: http://www.djcxy.com/p/48503.html