【发布时间】:2013-05-13 18:36:42
【问题描述】:
> within( list(a="a",b="b"), c="c" )
Error in eval(expr, envir, enclos) : argument is missing, with no default
> within( list(a="a",b="b"), c<-"c" )
$a
[1] "a"
$b
[1] "b"
$c
[1] "c"
我不确定为什么这两者不应该是等价的。由于...,似乎= 版本被解释为名为@987654323@ 的参数。有什么办法可以禁用这种行为?我试过了,
within( list(a="a",b="b"), `c`="c" )
但这也失败了。
【问题讨论】:
-
与
system.time(x = rnorm(1e300))不起作用的原因相同。 -
如果
=是传递给函数的表达式中的顶级函数调用,则=被理解为参数赋值。与within( list(a="a",b="b"), {c="c"})比较 -
这似乎也有效...
within( list(a="a",b="b"), "="(c,"c") ),以防你真的讨厌<-分配。 :) -
Frank 我喜欢无耻地利用 R 的操作符——实际上只是函数的概念。但我认为@MatthewPlourde 获胜是因为易于实施。 :-)
-
@MatthewPlourde 和 Frank,愿意为您的 cmets 提供答案吗?
标签: r