在我编写.R函数时,我经常需要手动编写源代码(“funcname.r”)来获取工作区中反映的更改。我确信必须能够自动执行此操作。所以我想要的只是改变我的功能,保存功能并能够在R工作区中使用新功能而无需手动“获取”此功能。我怎么能这样做?
更新:我知道如何选择合适的代码行并在R Editor(RGui)中按CTRL + R或使用Notepad ++并将行执行到R.但是这种方法的缺点是使我的工作区控制台“混乱”。如果可能的话,我想停止这种做法。
答案 0 :(得分:4)
您可以使用具有保存选项源的R studio。
答案 1 :(得分:2)
如果您准备将功能打包成一个包,您可能会喜欢探索Hadley的devtools包。这提供了一套用于编写,测试和记录的工具 包。
https://github.com/hadley/devtools
这种方法提供了许多优点,但主要是以最少的重新输入重新加载包。
你仍然需要输入load_all(“yourpackage”),但我发现与devtools的优点相比,这种少量的打字是小啤酒。
有关其他信息,包括如何设置devtools,请查看https://github.com/hadley/devtools/wiki/development
答案 2 :(得分:2)
如果您正在使用Eclipse + StatET,则可以按CTRL + R + S,这将保存您的脚本并为其提供源代码。尽可能接近自动。
答案 3 :(得分:1)
这可能是不可能的(在没有干预或至少运行一行的情况下自动检测光盘更改)。
R需要读入内存函数,因此如果不重新加载函数,光盘上的更改将不会反映在工作区中。
如果你正在开发R函数,在开发过程中会有一些混乱可能是不可避免的,但也许我可以建议你尝试编写一个R-package来保存你的函数?
这样做的好处是能够使用延迟加载强大地记录您的函数,以便您可以立即访问您的函数/数据集而无需获取它们。
不要害怕制作包装,使用package.skeleton()很容易,并且不必使用CRAN,但可以在不分发的情况下供个人使用!玩得开心!
尝试在开发过程中接受一些混乱,因为我们知道您正在努力实现目标并与代码组织和文档进行良好的斗争!
在一个不完美的世界里,我们只是不完美的人,但我们的意思是好的!
答案 4 :(得分:1)
如果您可以让文本编辑器在保存文件后运行系统命令,那么您可以使用AutoIt(在Windows上)或批处理脚本(在UNIX衍生版本上)将调用源传递给R的所有正在运行的副本。但是,由于没有多少收获,这是很多工作。
尽管如此,我认为更有可能在文本编辑器端进行事件驱动而不是让R不断扫描更新(或以某种方式与操作系统的更新事件消息系统进行交互)。