相关疑难解决方法(0)

这些字符串或变量?

来自C/Python/Java背景,我无法理解一些R语法,其中文字看起来像变量,但似乎表现得像字符串.例如:

library(ggplot2)
library("ggplot2")
Run Code Online (Sandbox Code Playgroud)

这两条线的行为相当.但是,我希望第一行的意思是"加载名称存储在ggplot2变量中的库"并给出类似的错误object 'ggplot2' not found.

说到ggplot2:

ggplot(data, aes(factor(arrivalRate), responseTime, fill=factor(mode))) +
  geom_violin(trim=FALSE, position=dodge)
Run Code Online (Sandbox Code Playgroud)

变量arrivalRate,responseTime并且mode不存在,但不知何故[R知道找一找里面data的数据帧.我假设aes实际上接收字符串,然后使用类似的东西进行处理eval.

R如何解析代码,最终将一些文字解释为字符串?

r ggplot2

32
推荐指数
4
解决办法
1245
查看次数

何时使用missing和NULL值在R中传递未定义的函数参数,为什么?

到目前为止,在编写R函数时,我将未定义的参数作为NULL值传递,然后测试它们是否为NULL即

f1 <- function (x = NULL) {
   if(is.null(x))
      ...
}
Run Code Online (Sandbox Code Playgroud)

但是我最近发现了将未定义的参数传递为缺失的可能性

f2 <- function (x) {
   if(missing(x))
      ...
}
Run Code Online (Sandbox Code Playgroud)

R文件说明了这一点

当前缺失只能在定义参数的函数的直接主体中使用,而不能在嵌套函数或本地调用的主体中使用.这可能在将来发生变化.

显然,这是使用缺失来确定未定义值的一个缺点是否有其他人或意识到?或者以更有用的形式表达问题"你何时使用缺失与NULL值来传递R中未定义的函数参数?为什么?"

null r function parameter-passing

8
推荐指数
2
解决办法
1427
查看次数

我应该使用NULL或NA作为可选功能参数的默认值

我有一个函数,如果一个非空值提供给另一个可选参数,它会做额外的事情.如果未提供参数,则该函数不会执行任何额外操作.

使用NA或更好NULL吗?两者有什么好处?

例如,如果我使用NA,那么我可以快速检查哪些参数不是通过使用:is.na(as.list(environment()))在函数体中提供的,它不起作用is.null.

这是我想要使用的原因的一个例子 NA

我正在尝试构建一个到Geckoboard条形图API的R连接器.它有许多可选参数.如果我执行以下操作,则使用该包jsonlite提供可选参数非常容易.

get_barchart_json <- function(data, x_axis = list(labels = NA, type = NA), y_axis = list(format = NULL, unit = NULL)){
    payload <- "{"
    textappend(payload) <- '"series": [{"data":['
    textappend(payload) <- paste0(data, collapse = ",")
    textappend(payload) <- ']}]'

    if(any(!is.na(x_axis))){

        textappend(payload) <- ","
        textappend(payload) <- jsonlite::toJSON(x_axis, auto_unbox = TRUE)

    }

    if(any(!is.na(y_axis))){

        textappend(payload) <- ","
        textappend(payload) <- jsonlite::toJSON(y_axis, auto_unbox = TRUE)

    }



    # finish construction …
Run Code Online (Sandbox Code Playgroud)

r function

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

do.call 的环境选项如何工作?

国家的文件do.call

如果quoteFALSE,默认值,则对参数求值(在调用环境中,而不是在 中envir)。

这句话向我暗示, when quote = FALSE,指定envir没有区别。然而,事实并非如此,事实上我遇到过需要指定envir才能使函数工作的情况。

最简单的可重现示例:

g1 <- function(x) {
  args <- as.list(match.call())
  args[[1]] <- NULL # remove the function call
  do.call(print, args, quote = FALSE) # call print()
}

g2 <- function(x) {
  args <- as.list(match.call())
  args[[1]] <- NULL # remove the function call
  do.call(print, args, quote = FALSE, envir = parent.frame()) # call print(), specifying envir
}

h1 <- function(x, y) { …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
280
查看次数

标签 统计

r ×4

function ×2

ggplot2 ×1

null ×1

parameter-passing ×1