【发布时间】:2017-03-08 04:49:53
【问题描述】:
按照您的建议(或至少尝试这样做),我尝试了一些选项,但问题仍然存在,所以我一定缺少一些东西。
我已经包含了更完整的代码
setwd("C:/naapp")
#' @import utils
#' @import devtools
我尝试过使用和不使用suppressForeignCheck
if(getRversion() >= "2.15.1"){
utils::globalVariables(c("eleven"))
utils::suppressForeignCheck(c("eleven"))
}
myFunctionSum <- function(X){print(X+eleven)}
myFunctionMul <- function(X){print(X*eleven)}
myFunction11 <- function(X){
assign("eleven",11,envir=environment(myFunctionMul))
}
也许我应该使用特定的环境?
package.skeleton(name = "myPack11", list=ls(),
path = "C:/naapp", force = TRUE,
code_files = character())
我从目录 myPack11 中删除了“man”目录, 否则我会得到一个错误,因为帮助文件是空的。 我将导入工具和开发工具添加到描述中
然后我运行检查
devtools::check("myPack11")
我仍然收到这个便条
#checking R code for possible problems ... NOTE
#myFunctionMul: no visible binding for global variable 'eleven'
#myFunctionSum: no visible binding for global variable 'eleven'
#Undefined global functions or variables:eleven
我也尝试过创建一个环境,结合 Tomas Kalibera 的建议和我在 Internet 上找到的一个示例。
myEnvir <- new.env()
myEnvir$eleven <- 11
等 在这种情况下,我得到相同的注释,但使用“myEnvir”,而不是“十一”
问题的第一个版本
我尝试使用包 utils 中的“globalVariables”。我正在 R 中构建一个界面,并计划提交给 CRAN。这是我第一次,所以,如果问题非常基本,对不起。我已经阅读了帮助并尝试找到示例,但我仍然不知道如何使用它。
我做了一个小例子来说明我的问题,即: 我必须把这条线准确地放在哪里?:
if(getRversion() >= "2.15.1"){utils::globalVariables("eleven")}
我的示例具有三个功能。 myFunction11 创建全局变量“十一”,其他两个函数对其进行操作。在我的真实代码中,我不能在通过按钮调用的函数中使用参数。考虑到这只是一个学习如何使用 globalVariables 的愚蠢示例(以避免绑定注释)。
myFunction11 <- function(){
assign("eleven",11,envir=environment(myFunctionSum))
}
myFunctionSum <- function(X){
print(X+eleven)
}
myFunctionMul <- function(X){
print(X*eleven)
}
提前谢谢你
【问题讨论】:
-
发现这一点的一个好方法可能是:github.com/…✓
标签: r global-variables r-package