首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中的函数中使用else if

在R中的函数中使用else if
EN

Stack Overflow用户
提问于 2020-07-01 14:54:10
回答 1查看 61关注 0票数 0

我尝试在R中的函数中使用else if。

代码语言:javascript
复制
new<-function(a,b,c,d){
if (a==1){
var1<-100+100+100
var2<-500+500+500
var3<-500-100

}else if (a==2){
var1<-100+100
var2<-500+500
var3<-500-10
} else if (a==3){
var1<-100
var2<-500
var3<-500
}

b<-var1-var2

c<- var2+var3

d<-var3-var1

if (b<100)
{print ("the value is good")
}else if (b>100)
{ print("check teh value")
}else 
{print ("repeat")
}
}

output<-new(3,b,c,d)

我觉得我遗漏了一些基本的错误。我正在尝试使用else if来填充要用作输入的值,以调用相同的函数。

非常感谢您的帮助

EN

回答 1

Stack Overflow用户

发布于 2020-07-01 15:18:51

您可以简化为:

代码语言:javascript
复制
new <- function(a) {
  if (a == 1) {
    b <- -1200
  } else if (a == 2) {
    b <- -800
  } else if (a == 3) {
    b <- -400
  }
  
  if (b < 100)
  {
    print ("the value is good")
  } else if (b > 100)
  {
    print("check the value")
  } else
  {
    print ("repeat")
  }
  return(b) # for fun return the value of b
}

output <- new(2)

但是这个函数总是有打印"the value is good“的副作用,因为b总是计算为负数。目的是什么?如果你想返回值a到d,你可以按照你的例子进行中间计算,并且这样做:用return(b)代替return(list(a = a, b = b, c = c, d = d))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62671210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档