在ifelse函数中,有一种方法可以先创建一些东西,然后在语句为TRUE时返回结果吗?

时间:2017-10-04 03:37:40

标签: r

我真的是r编程的初学者。我坚持这个问题。我尝试做的是,如果ifelse为true,则创建一个包含不同值的向量。例如,如果我q.matri= c(1,0,0),那么我想得到类似(0.2466072,0.7819847)的向量。但它给了我唯一一个0.2466072的值。是不是可以用ifelse函数做这些事情? 提前谢谢!

 a= function(q.matri){
      pc <- runif(1, IQ - VAR, IQ + VAR)
      p0 <- runif(1,0.20 - VAR , 0.20 + VAR)  
      p2 <-runif(1,0.25 - VAR , 0.25 + VAR)
      p3 <-runif(1,0.30 - VAR , 0.30 + VAR)
    ifelse (
      (sum(q.matri)==1),
          c(p0,pc),
      ifelse (
        (sum(q.matri)==2),
        c(p0, rep(p2, 2), pc),
      ifelse (
        (sum(q.matri)==3),
        c(p0, rep(p2, 3), rep(p3, 3), pc)
      )))}

1 个答案:

答案 0 :(得分:1)

您好我使用您发布的代码来制定R

中的程序
a= function(q.matri){
pc = 1
p0 = 2
p2 =3
p3 =4
if(sum(q.matri)==1){
 return(c(p0,pc))
}else if(sum(q.matri)==2){
 return(c(p0, rep(p2, 2), pc))
}else if(sum(q.matri)==3){
 return(c(p0, rep(p2, 3), rep(p3, 3), pc))
}}

关于IQR和Var函数,您需要指定要计算的数据,此链接IQR说明如何在R中使用IQR函数,此链接Var说明如何使用VAR函数。