【发布时间】:2018-10-21 04:58:21
【问题描述】:
在函数内部,我想将变量设置为相应的参数,或者如果该参数为 NULL,则设置为默认值。代码如下:
rcontrol <- ifelse(is.null(rcontrol),rpart.control(cp=0.001,minbucket=100,minsplit = 5),rcontrol)
我花了很长时间才弄明白rcontrol 与以这种方式定义的不一样:
rcontrol <- rpart.control(cp=0.001,minbucket=100,minsplit = 5)
谁能解释ifelse的这种奇怪行为?
【问题讨论】:
-
你想要
if(){} else{},而不是ifelse。如果你查看ifelse,它“返回一个与test形状相同的值”(它的第一个参数),所以如果你传递一个NULL,你什么也得不到。 -
@Gregor,您认为这与那些链接是否足够相似以至于可以重复?
-
@BenBolker 我最近澄清了我在这里选择的欺骗的答案,使其更适用于这类情况,但如果你不同意,我愿意接受其他建议......
-
这就是我要找的那个。我刚刚添加了r-faq 标签以便于查找。
标签: r