相关疑难解决方法(0)

当我的ggplot2语法合理时,如何处理R CMD检查"没有可见的全局变量绑定"注释?

编辑:哈德利威克姆指出我错过了.R CMD检查是投掷NOTES,而不是警告.我非常抱歉这种混乱.这是我的疏忽.

简短的版本

R CMD check每次我在ggplot2中使用合理的绘图创建语法时都会抛出此注释:

no visible binding for global variable [variable name]
Run Code Online (Sandbox Code Playgroud)

我理解为什么R CMD检查会这样做,但它似乎将整个其他合理的语法定为犯罪.我不知道采取什么措施来让我的包裹通过R CMD check并获准进入CRAN.

的背景

Sascha Epskamp之前基本上发布了相同的问题.我认为,不同之处在于它的手册subset()说它是专为交互式使用而设计的.

就我而言,问题还没有结束,subset()而是超出了一个核心特征ggplot2:data =争论.

我编写的代码示例生成这些注释

这里的一个子功能我的包,增加了指向一个情节:

JitteredResponsesByContrast <- function (data) {
  return(
    geom_point(
             aes(
               x = x.values, 
               y = y.values
             ),
             data     = data,
             position = position_jitter(height = 0, width = GetDegreeOfJitter(jj))
    )
  )
}
Run Code Online (Sandbox Code Playgroud)

R CMD …

r ggplot2

169
推荐指数
6
解决办法
2万
查看次数

R包编译依赖于data.table

我正在尝试使用Jdata.table 创建一个带有函数的R包.当我运行时R CMD check,我有一个注意:'J'没有可见的全局函数定义,尽管我已经在DESCRIPTION文件中添加了data.table作为依赖项.

包:rfPred
类型:包
标题:将rfPred功能预测分数分配给错误变体列表
版本:1 . 0日期
:2013-03-14
作者:me
维护者:我
取决于:data.table
[..]

我试图在我想要创建的包中使用data.table包的另一个函数,但是我和J.没有相同的问题.

你有解决方案吗 ?

r data.table

10
推荐指数
1
解决办法
1260
查看次数

data.table与checkUsage不匹配

data.table是一个很棒的包,唉,产生无根据的警告checkUsage(代码来自这里这里):

> library(compiler)
> compiler::enableJIT(3)
> dt <- data.table(a = c(rep(3, 5), rep(4, 5)), b=1:10, c=11:20, d=21:30, key="a")
> my.func <- function (dt) {
  dt.out <- dt[, lapply(.SD, sum), by = a]
  dt.out[, count := dt[, .N, by=a]$N]
  dt.out
}
> checkUsage(my.func)
<anonymous>: no visible binding for global variable ‘.SD’ (:2)
<anonymous>: no visible binding for global variable ‘a’ (:2)
<anonymous>: no visible binding for global variable ‘count’ (:3)
<anonymous>: no visible binding …
Run Code Online (Sandbox Code Playgroud)

r data.table

10
推荐指数
1
解决办法
537
查看次数

使用R引用类在GUI中将值从一个窗口传递到另一个窗口

我正在使用gWidgets在R中制作GUI.到目前为止,我一直在通过全球环境将值从一个窗口传递到另一个窗口.使用全局环境很容易实现,但并不理想.一个问题是R CMD check抱怨缺乏对全局变量的可见绑定.

作为这个问题的解决方案,几个R程序员已经提到了引用类.但是要理解引用类在这种情况下如何工作,有一个简单的例子真的很有帮助.

让我给一个愚蠢的GUI工作.当用户点击第一个窗口的按钮时,它将模型m放在全局环境中.第二个按钮m来自全局环境并提供输出.当您再次点击第一个按钮时,它将创建一个新模型m并更改第二个按钮的输出.如果关闭第一个窗口,第二个窗口中的按钮仍然可以工作,因为m它位于全局环境中.

library(gWidgets)
options(guiToolkit = "tcltk")

h1 <- function(h, ...){
  d1 <- data.frame(x=runif(10), y=runif(10))
  .GlobalEnv$m <- lm(x ~ y, data=d1)
}

g1 <- gbutton("1. Make model", 
  container=gwindow(), handler=h1)

h2 <- function(h, ...){
  d2 <- data.frame(y=(1:10)/10)
  p <- predict(.GlobalEnv$m, newdata=d2)
  print(p)
}

g2 <- gbutton("2. Make prediction", 
  container=gwindow(), handler=h2)
Run Code Online (Sandbox Code Playgroud)

如何在此示例中使用引用类?

user-interface r global-variables gwidgets reference-class

5
推荐指数
1
解决办法
327
查看次数

在 R 的包函数中使用 ddply 的可视化绑定

我有一个类似的问题,就像这里已经讨论过的一样: Novisible绑定for全局变量Note in R CMD check

就我而言,我在自己的包中使用 ddply 函数,当我检查 R 包时,我得到一条注释:“全局变量‘VARX’没有可见的绑定。

所寻址的代码行是:

subsample <- ddply(my_data, .(VARX), function(x){x[sample(nrow(x), 1), ]})
Run Code Online (Sandbox Code Playgroud)

变量 VARX 是包 (sysdata) 提供的数据帧中的一列。改进代码以获得适当的 R 包的良好做法是什么?

r package plyr

0
推荐指数
1
解决办法
223
查看次数