我是R的初学者。我正在尝试用if创建一个函数。
a=function(l){
if((l==0) || (l==1)){probab=c(prob_cor= round(runif(1, IQ - VAR, IQ + VAR),4),
prob_i= round(runif(1,0.20 - VAR , 0.20 + VAR),4)) else probab}
> l
[,1]
[1,] 0
[2,] 2
[3,] 3
[4,] 4
[5,] 5
[6,] 6
[7,] 7
[8,] 8
[9,] 1
[10,] 2
apply(l,2,a)
在这个函数中,我的第一个l = 0。我会得到一个“probab”值。对于第二个l,“if语句”将是错误的,并且我想保持先前生成的相同“probab”值(当l = 0时)但我从未获得相同的值。基本上,我只想在l = 0或1时改变我的probs,否则保持先前生成的值。我该怎么办?谢谢!
答案 0 :(得分:0)
你在找这样的东西吗?
#if 0 or 1 is not at the beginning of l then you might need to uncomment below line
#probab <- NULL
a <- function(l){
if ((l==0) || (l==1)){
probab <<- c(prob_cor= round(runif(1, IQ - VAR, IQ + VAR),4),
prob_i= round(runif(1,0.20 - VAR , 0.20 + VAR),4))
return(probab)
}
else return(probab)
}
l <- matrix(c(0,2:8,1:2))
apply(l,1,a)