当我定义以下函数时,我不明白如何避免出现“未使用的参数”错误。
我使用RStudio版本1.2.1335。
condition = function(cond)
{
ifelse (cond == 0, value = 1, value = -1)
return(value)
}
当我尝试运行该功能时,例如条件(0),我收到以下错误消息:
ifelse(cond == 0,value = 1,value = -1)错误: 未使用的参数(值= 1,值= -1)
如何解决此错误?
答案 0 :(得分:2)
ifelse
的用法是
ifelse(测试,是,否)
在这里,“ yes”和“ no”不需要任何赋值。如果有任何分配,则应在ifelse
函数之外
value <- ifelse(cond == 0, 1, -1)
在OP的功能中,它也不需要任何赋值,因此不需要return
语句,因为我们可以提供单个语句
condition <- function(cond) ifelse(cond == 0, 1, -1)
此外,ifelse
可以用算术方式替换值
condition <- function(cond) c(-1, 1)[(!cond) + 1]
答案 1 :(得分:1)
您在这里:
condition = function(cond)
{
ifelse (cond == 0, value <- 1, value <- -1)
return(value)
}
测试:
> condition(0) [1] 1 > condition(1) [1] -1
您可以使用value
运算符将值分配给<-
。否则,R
认为您正在向ifelse
传递参数,并且由于没有value
的{{1}}参数而导致错误:
ifelse
修改
请注意,除非您了解它的工作方式和原因,否则我不建议您这样做。如akrun所指出,最安全的解决方案是正确使用> args(ifelse)
function (test, yes, no)
NULL
。