我目前正在为R-Commander GUI开发一个插件.在这个包中我使用了很多其他的包,我只是通过使用描述文件中的Depends选项来附加.然而,我现在将它们切换到Imports选项,并且遇到了一些问题.因为我想在我自己的代码内部使用一些函数,但也能够在R Commander的脚本窗口中打印和使用它们,我还必须在命名空间中导出它们.
我们以biclust包为例.此包在其命名空间中具有以下导出:
# First a bunch of functions are exported (Note that the biclust function is not in here!)
export(drawHeatmap,drawHeatmap2,bubbleplot,...,heatmapBC)
# The classes are exported
exportClasses(BiclustMethod,Biclust,BCBimax,BCCC,BCXmotifs,BCSpectral,BCPlaid)
# Methods are exported
exportMethods(biclust,show,summary)
Run Code Online (Sandbox Code Playgroud)
因此,当我library(biclust)在R会话中,它按预期工作,这意味着我可以使用biclustR控制台中的方法/功能.
现在这是我的命名空间文件的样子(或至少它与此讨论相关的部分)
# I select those functions I need and import them.
importFrom(biclust, drawHeatmap,...,biclustbarchart)
# I import all the classes
importClassesFrom(biclust,BiclustMethod,Biclust,BCBimax,BCCC,BCXmotifs,BCSpectral,BCPlaid)
# I import all the methods
importMethodsFrom(biclust,show,summary,biclust)
# I now export all of the previous again so I can use …Run Code Online (Sandbox Code Playgroud) 我正在尝试按照这篇非常好的博客文章的指示创建一个闪亮的桌面应用程序(http://www.r-bloggers.com/deploying-desktop-apps-with-r/)
所以基本上我有一个具有以下结构的文件夹:
App
|__ GoogleChromePortable
|__ App
|__ Data
|__ ...
|__ R Portable
|__ App
|__ Data
|__ ...
|__ shiny
|__ ui.R
|__ server.R
|__ ...
|__ LAUNCH.bat/LAUNCH.vbs
|__ runShinyApp.R
Run Code Online (Sandbox Code Playgroud)
我正在创建2个不同版本,一个使用GoogleChromePortable而另一个没有.两个版本完全相同,只是Chrome的路径runShinyApp.R.
runShinyApp.R:
# checking if correct library paths are being used (only portable one!)
message('library paths:\n', paste('... ', .libPaths(), sep='', collapse='\n'))
# both chromes work!
chrome.sys = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe'
chrome.portable = file.path(getwd(),
'GoogleChromePortable/App/Chrome-bin/chrome.exe')
launch.browser = function(appUrl, browser.path=chrome.portable) {
message('Browser path: ', browser.path) …Run Code Online (Sandbox Code Playgroud)