在函数中保持if语句的相同值

时间:2017-09-17 17:01:17

标签: r

我是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,否则保持先前生成的值。我该怎么办?谢谢!

1 个答案:

答案 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)