R - Ошибка при выполнении пользовательской функции - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь создать функцию, которая принимает 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"

Я посмотрел в другом вопросе, и кто-то упомянул "поиск" функции.Я попробовал это, и это был вывод:

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

Я довольно плохо знаком с R, поэтому я, вероятно, совершаю глупую ошибку.

Может кто-нибудь помочь?

...