R中的ifelse函数

时间:2018-02-23 17:23:17

标签: r function if-statement

如果函数匹配5,1或5,0,我正在尝试创建一个能打印奖品的功能。

下面是否可以实现这一点?我尝试了各种方法并设法收到同样的错误:

  

powerball_numbers(5,1)

  Error in powerball_numbers(5, 1) : unused argument (1)

  # total Grand Prize
  grand_prize <- 10000000
  #M5 white balls and one red
  w_5_r_1 <- c(5,1)

 #Second Prize of $1,000,000
 second_prize <- 50000
 #Match 5 white balls and 0 Red
 w_5_r_0 <- c(5,0)

  powerball_numbers <- function(x) {ifelse(x = w_5_r_1, grand_prize) 
                              ifelse(x = w_5_r_0, second_prize)
                              }
  powerball_numbers(5,1)

   Error in powerball_numbers(5, 1) : unused argument (1)

1 个答案:

答案 0 :(得分:1)

这里有各种错误。在ifelse中,条件应使用==表示数字或字符或因子。

然后你的函数只有一个参数,你给两个。参数应该是c(5,1),而不是5,1,这是两个数字

第三,您无法将矢量或列表与==的相等性进行比较,但应使用identical()函数

并且ifelse的想法是为tRUE和False条件提供答案

 powerball_numbers <- function(x) {if(identical(x,w_5_r_1)){grand_prize} else if(identical(x,w_5_r_0)){second_prize}}
 powerball_numbers(c(5,1))
[1] 1e+07