R中函数中未使用的参数
我是R新手,尝试使用接受-拒绝方法生成标准正态变量作为赋值的一部分,但我不知道我在定义这个函数时有何失误。我已经看过了其他未使用参数错误的案例,但它们似乎和有额外的变量作为输入有关,我不相信我会这样做。有人能解释为什么会这样吗?我真的很想更好地理解R是如何工作的R中函数中未使用的参数,r,R,我是R新手,尝试使用接受-拒绝方法生成标准正态变量作为赋值的一部分,但我不知道我在定义这个函数时有何失误。我已经看过了其他未使用参数错误的案例,但它们似乎和有额外的变量作为输入有关,我不相信我会这样做。有人能解释为什么会这样吗?我真的很想更好地理解R是如何工作的 AR<-function(u1,u2){ y1=(-1)*(log(u1)) y2=(-1)*(log(u2)) condition=(((y1)-1)*((y1)-1))/2 u3=runif(1
AR<-function(u1,u2){
y1=(-1)*(log(u1))
y2=(-1)*(log(u2))
condition=(((y1)-1)*((y1)-1))/2
u3=runif(1)
ifelse(u3>=0.5,zz=abs(z),zz=(-1)*(abs(z)))
}
u1=runif(1)
u2=runif(1)
AR(u1,u2)
# Error in ifelse(u3 >= 0.5, zz = abs(z), zz = (-1) * (abs(z))) :
# unused argument(s) (zz = abs(z), zz = (-1) * (abs(z)))
AR=0.5,zz=abs(z),zz=(-1)*(abs(z)))
}
u1=运行IF(1)
u2=运行时(1)
AR(u1,u2)
#ifelse中的错误(u3>=0.5,zz=abs(z),zz=(-1)*(abs(z)):
#未使用的参数(zz=abs(z),zz=(-1)*(abs(z)))
ifelse
没有名为zz
的参数(名称为test,yes,no
,请参见?ifelse
)。这就是为什么会出现错误未使用的参数
。ifelse
的正确用法是:
zz <- ifelse(u3 >= 0.5, abs(z), (-1) * abs(z))
zz=0.5,abs(z),(-1)*abs(z))
请注意,通常最好使用是的,我开始明白了。我将其修改为@sgibb,并将其作为zz=AR(u1,u2)
运行,其中u1和u2只是runif(1)
。当调用函数时,它是否也会工作,以表示zz好的,这会处理好它。所以如果它是两个不同的变量,我就不能使用ifelse,对吗?比如,如果我想将a=expr设置为true,将b=expr设置为false,那么我必须用另一种方式来实现它?我可以在常规if语句中使用等价运算符吗?如果我尝试这样做,它的工作方式是否与ifelse类似?你可以在iflese中嵌入ifelse,比如zz=0.5,abs(z),ifelse(u3>=0.25,(-1)*abs(z),abs(z)*2))