Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
矢量化&x27;德帕斯(替代品(d))和#x27;在R?_R_Function - Fatal编程技术网

矢量化&x27;德帕斯(替代品(d))和#x27;在R?

矢量化&x27;德帕斯(替代品(d))和#x27;在R?,r,function,R,Function,我想知道为什么在使用以下命令运行我的程序时:bb(d=c(dnorm,dcauchy))我会收到一个错误,说:object'c(dnorm,dcauchy)'notfound p.S.但正如我在下面所示,该函数与bb(d=c(dnorm))没有问题 bb尝试将函数直接传递给函数的方法 bb <- function(d){ if (!is.list(d)) d <- list(d) sapply(d, function(x) x(1)) } bb(d = list(dno

我想知道为什么在使用以下命令运行我的程序时:
bb(d=c(dnorm,dcauchy))
我会收到一个错误,说:
object'c(dnorm,dcauchy)'notfound

p.S.但正如我在下面所示,该函数与
bb(d=c(dnorm))
没有问题


bb尝试将函数直接传递给函数的方法

bb <- function(d){
  if (!is.list(d)) d <- list(d)
  sapply(d, function(x) x(1))  
}

bb(d = list(dnorm, dcauchy))
bb(d = dnorm)

bb尝试将函数直接传递给函数的方法

bb <- function(d){
  if (!is.list(d)) d <- list(d)
  sapply(d, function(x) x(1))  
}

bb(d = list(dnorm, dcauchy))
bb(d = dnorm)

bb当您将其解压时,您会得到
“c(dnorm,dcauchy)”
,因为
get()
需要变量名。不能将其与函数一起使用。例如,
get(“x”)
会返回
x
的值,但是
get(“c(x)”
不会“调用”
c()
函数。它适用于名称,而不是表达式。出于这样的原因,通常最好避免
get()
。也许您正在做的事情中有一部分被忽略了,但我不明白为什么您不能将函数本身(或函数列表)作为参数传递,并跳过所有的deparsing/get内容。@joran,所以在我编辑的代码中,现在
bb(d=c(“dnorm”,“dcauchy”))
运行正常@rnorouzian这一切都取决于传递多个函数时希望行为(输出)是什么。似乎传递函数列表更容易。在那种情况下,根本不需要脱裤子
bb(d=list(dnorm,dcauchy))
当您将其解压时,您会得到
“c(dnorm,dcauchy)”
,字面意思是。因为
get()
需要变量的名称。不能将其与函数一起使用。例如,
get(“x”)
会返回
x
的值,但是
get(“c(x)”
不会“调用”
c()
函数。它适用于名称,而不是表达式。出于这样的原因,通常最好避免
get()
。也许您正在做的事情中有一部分被忽略了,但我不明白为什么您不能将函数本身(或函数列表)作为参数传递,并跳过所有的deparsing/get内容。@joran,所以在我编辑的代码中,现在
bb(d=c(“dnorm”,“dcauchy”))
运行正常@rnorouzian这一切都取决于传递多个函数时希望行为(输出)是什么。似乎传递函数列表更容易。在那种情况下,根本不需要脱裤子<代码>bb(d=列表(dnorm,dcauchy))