[Bioc-devel] ddply causes error during R check

web working webwork|ng @end|ng |rom po@teo@de
Thu Feb 14 09:09:04 CET 2019


Hi Martin,

thank you for this approach. I will check my code and see where I can 
use it.

Tobias

Am 12.02.19 um 14:58 schrieb Martin Morgan:
> use `globalVariables()` to declare these symbols and quieten warnings, at the expense of quietening warnings about undefined variables in _all_ code and potentially silencing true positives. Avoid non-standard evaluation (this is what ddply is doing, using special rules to resolve symbols like `name`) by using base R functionality; note also that non-standard evaluation is prone to typos, e.g., looking for the typo `hpx` in the calling environment rather than the data frame
>
>> hpx = 1
>> ddply(mtcars, "cyl", "summarize", value = mean(hpx)).  ## oops, meant `mean(hp)`.
>    cyl summarize
> 1   4         1
> 2   6         1
> 3   8         1
>
> Marginally better is
>
>> aggregate(hp ~ cyl, mtcars, mean)
>    cyl        hp
> 1   4  82.63636
> 2   6 122.28571
> 3   8 209.21429
>
> where R recognizes symbols in the formula ~ as intentionally unresolved. The wizards on the list might point to constructs in the rlang package.
>
> Martin
>
> On 2/12/19, 2:35 AM, "Bioc-devel on behalf of web working" <bioc-devel-bounces using r-project.org on behalf of webworking using posteo.de> wrote:
>
>      Hi,
>      
>      I am developing a Bioconductor package and can not get rid of some
>      warning messages. During devtools::check() I get the following warning
>      messages:
>      
>      ...
>      summarizeDataFrame: no visible binding for global variable ‘name’
>      summarizeDataFrame: no visible binding for global variable ‘gene’
>      summarizeDataFrame: no visible binding for global variable ‘value’
>      ...
>      
>      Here a short version of the function:
>      
>      #' Collapse rows with duplicated name column
>      #'
>      #' @param dat a \cite{tibble} with the columns name, gene and value
>      #' @importFrom plyr ddply
>      #' @import tibble
>      #' @return a \cite{tibble}
>      #' @export
>      #'
>      #' @examples
>      #' dat <- tibble(name = c(paste0("position", 1:5), paste0("position",
>      c(1:3))), gene = paste0("gene", 1:8), value = 1:8)
>      #' summarizeDataFrame(dat)
>      summarizeDataFrame <- function(dat){
>         ddply(dat, "name", "summarize",
>               name=unique(name),
>               gene=paste(unique(gene), collapse = ","),
>               value=mean(value))
>      }
>      
>      R interprets the "name", "gene" and "value" column names as variables
>      during the check. Does anyone has an idea how to change the syntax of
>      ddply or how to get rid of the warning message?
>      
>      Thanks in advance!
>      
>      Tobias
>      
>      _______________________________________________
>      Bioc-devel using r-project.org mailing list
>      https://stat.ethz.ch/mailman/listinfo/bioc-devel
>



More information about the Bioc-devel mailing list