【问题标题】:Trying to get a multiple of 3 and 5 in R [closed]试图在R中获得3和5的倍数[关闭]
【发布时间】:2015-11-17 18:05:02
【问题描述】:

我需要一个程序来打印从 1 到 100 的数字。但是对于三的倍数打印 Multipleof3 而不是数字,对于五的倍数打印 Multipleof5

p2<-function(x){
  x=c(1:100)
  if (x%%3==0){
  print ("Multipleof3")
  } else if (x%%5 == 0){
  print("Multipleof5")
  } else {
   print(x)
  }
  }

谢谢

【问题讨论】:

标签: r


【解决方案1】:

试试:

p2<-function(x){
    if (x%%3==0){
        return ("Multipleof3")
    } else if (x%%5 == 0){
        return("Multipleof5")
    } else {
        return(x)
    }
}

p<-Vectorize(p2)

p(1:100)

# [1] "1"           "2"           "Multipleof3" "4"           "Multipleof5" "Multipleof3" "7"           "8"   

注意:您可以将p2 替换为:

p2<-function(x){
    return(ifelse(x%%3==0, "Multipleof3", ifelse(x%%5==0, "Multipleof5", x)))
}

您的函数参数不应出现在问题中,而是像这样定义:function(x),当您调用函数时,您将参数 (1:100) 放在 x 的位置。 Vectorize 允许创建一个新函数:p,它与 p2 相同,但能够处理向量。

使用:

p2<-function(x){
    return(ifelse(x%%3==0 & x%%5==0, "MultipleOfBoth", ifelse(x%%3==0, "Multipleof3", ifelse(x%%5==0, "Multipleof5", x))))
}

用于处理 3 和 5 的倍数。

【讨论】:

  • 谢谢大家!!!这太有帮助了! :)
猜你喜欢
  • 1970-01-01
  • 2021-07-14
  • 1970-01-01
  • 1970-01-01
  • 2020-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
相关资源
最近更新 更多