你能建议我自动在R中加载包裹的方法吗?我的意思是,我想在R中开始一个会话,而不需要library('package name')多次使用.假设我下次启动R时下载了我想要使用的所有软件包.
是否可以在roxygen过程中将.R文件包含在我的包的数据目录中?
我在数据目录中放了几个.R文件.当它们使用data()获取时,它们会读入原始数据文件并执行一些转换.
当我R CMD check --as-cran 在我的包装上运行时,我仍然得到的一个注释是:
checking CRAN incoming feasibility ... NOTE
Maintainer:[my name] <my email>
Run Code Online (Sandbox Code Playgroud)
我似乎无法找到对这个笔记的一个很好的解释,虽然我没有读过任何告诉我应该关注它的东西.和其他人一样碰到这个?我能做些什么来清除音符吗?
我想创建一个本地R包存储库,以便我公司的用户可以从中安装包,系统管理员可以定期更新本地存储库.目前拒绝访问CRAN镜像.
有一个简单的方法吗?
我想在一个包命名空间中推送一个函数,以便它可以访问该包的内部对象(让我们使用stats包作为例子).我试过用了
myfun <- function(x) print(x)
env = loadNamespace("stats")
assign("myfun", myfun , env)
Run Code Online (Sandbox Code Playgroud)
但它被锁定了.所以我试图解锁我的对象
unlockBinding("myfun", env)
Run Code Online (Sandbox Code Playgroud)
由于myfun尚不存在,我无法解锁.
有帮助吗?
我正在学习为R构建一个包.现在要设置它,我需要在加载包时运行一些代码require(myPackage).
我阅读的文档help(".onLoad")只是让我感到困惑,因为没有例子.我如何实际使用.onLoad?
有人能告诉我一个简单的例子吗?例如,我知道export(myfun)在NAMESPACE文件中将导出myfun以供使用,我需要rnorm(10)在包加载时运行的代码是什么?
我正在尝试Rcpp在我的 M1 Mac 上使用 R 中需要的软件包,但在购买这台计算机后我一直无法启动并运行它。我将其更新到蒙特利,希望这能解决一些安装问题,但事实并非如此。我尝试从此页面Rcpp运行检查,但出现以下错误:
> Rcpp::sourceCpp("~/github/helloworld.cpp")\nRun Code Online (Sandbox Code Playgroud)\nld: warning: directory not found for option \'-L/opt/R/arm64/gfortran/lib/gcc/aarch64-apple-darwin20.2.0/11.0.0\'\nld: warning: directory not found for option \'-L/opt/R/arm64/gfortran/lib\'\nld: library not found for -lgfortran\nclang: error: linker command failed with exit code 1 (use -v to see invocation)\nmake: *** [sourceCpp_4.so] Error 1\nclang++ -arch arm64 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I../inst/include -I"/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/Rcpp/include" -I"/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/RcppArmadillo/include" -I"/Users/afredston/github" -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c helloworld.cpp -o helloworld.o\nclang++ -arch arm64 -std=gnu++14 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined …Run Code Online (Sandbox Code Playgroud) 这个问题,特别是这个答案提出了以下问题:如何得到关于R中方法掩码的警告?
如果在干净的R会话中运行以下代码,您会注意到加载dplyr更改了默认方法lag.
lag(1:3, 1)
## [1] 1 2 3
## attr(,"tsp")
## [1] 0 2 1
require(dplyr)
lag(1:3, 1)
## [1] NA 1 2
Run Code Online (Sandbox Code Playgroud)
如果附加了包dplyr,则会获得几个被屏蔽对象的警告,但是没有关于lag被屏蔽的默认方法的警告.原因是在调用时,调用包中lag的泛型函数stats.
lag
## function (x, ...)
## UseMethod("lag")
## <bytecode: 0x000000000c072188>
## <environment: namespace:stats>
Run Code Online (Sandbox Code Playgroud)
并methods(lag)告诉我有一种方法lag.default.我可以看到有两种方法使用getAnywhere:
getAnywhere(lag.default)
## 2 differing objects matching ‘lag.default’ were found
## in the following places
## registered S3 method for lag …Run Code Online (Sandbox Code Playgroud) 我一直在寻找一堆不同的软件包,我注意到确实没有一个简洁明了的函数存储方法.一些包作者将所有这些包装在一个文件中,而其他作者将它们分成单个文件.
我已阅读了许多软件包创建指南,但没有提供具体的指导或建议.
很想听听你对此的看法.