R - 执行用户定义函数时出错

时间:2018-05-23 09:24:35

标签: r user-defined-functions

我正在尝试构建一个带有2个参数的函数,并在复制函数中使用这2个参数

SPM <- function(bilhetes, N){
  total_bilhetes <- 12012000
  total_bilhetes_premios <- 3526450

  premios <- c(0,5,10,15,20,25,50,100,300,1000,27000,108000,288000)
  premios_bilhetes <- c(8485550,1895000,496800*2,88800*3,55200*4,16800*4,7920*6,5030*6,950*5,950,30,10,10)

  probs <- premios_bilhetes/total_bilhetes

  vector_ganhos <- c()
  ganho <- 0

  replicate(N, function(bilhetes) {
    total_bilhetes1 <- total_bilhetes
    premios_bilhetes1 <- premios_bilhetes
    probs1 <- probs

    for (i in c(1:bilhetes)) {
      A <- sample(x = premios,replace = T,size = 1, prob = probs1)
      ganho <- ganho - 5 + A

      if (A == 0) {
        premios_bilhetes1[1] <- premios_bilhetes1[1] - 1
      } else if (A == 5) {
        premios_bilhetes1[2] <- premios_bilhetes1[2] - 1
      } else if (A == 10) {
        premios_bilhetes1[3] <- premios_bilhetes1[3] - 1
      } else if (A == 15) {
        premios_bilhetes1[4] <- premios_bilhetes1[4] - 1
      } else if (A == 20) {
        premios_bilhetes1[5] <- premios_bilhetes1[5] - 1
      } else if (A == 25) {
        premios_bilhetes1[6] <- premios_bilhetes1[6] - 1
      } else if (A == 50) {
        premios_bilhetes1[7] <- premios_bilhetes1[7] - 1
      } else if (A == 100) {
        premios_bilhetes1[8] <- premios_bilhetes1[8] - 1
      } else if (A == 300) {
        premios_bilhetes1[9] <- premios_bilhetes1[9] - 1
      } else if (A == 1000) {
        premios_bilhetes1[10] <- premios_bilhetes1[10] - 1
      } else if (A == 27000) {
        premios_bilhetes1[11] <- premios_bilhetes1[11] - 1
      } else if (A == 108000) {
        premios_bilhetes1[12] <- premios_bilhetes1[12] - 1
      } else {
        premios_bilhetes1[13] <- premios_bilhetes1[13] - 1
      }

      total_bilhetes1 <- total_bilhetes1 - 1

      probs1 <- premios_bilhetes1/(total_bilhetes1)
    }

    vector_ganhos[length(vector_ganhos)+1] = ganho
  })
  return(vector_ganhos)
}

当我尝试运行它时,例如SPM(bilhetes = 5, N = 100)我得到:

Error in SPM(bilhetes = 5, N = 100) : could not find function "SPM"

我看了另一个问题,有人提到&#34;采购&#34;功能。我试过了,这是输出:

> source("SPM")
Error in file(filename, "r", encoding = encoding) : 
  cannot open the connection
In addition: Warning message:
In file(filename, "r", encoding = encoding) :

我对R很新,所以我可能犯了一个愚蠢的错误。

有人可以帮忙吗?

0 个答案:

没有答案