Смущен ошибкой: объект 'перенос' не найден - PullRequest
0 голосов
/ 02 марта 2020

Я хочу выбрать большой набор данных из 100 000 строк и выполнить расчет с каждым из 10000 выбранных случайных значений. Выборка выбирает случайное значение, называемое «неиспользованным», и на основе выбранного значения существует три варианта использования операторов if, но по какой-то причине переменная «перенос» не найдена.

Код:

options(width=10000)
unused <- round(runif(100000, 0, 600),0)

B <-10000
unused <-matrix(sample(unused,size=B,replace=TRUE),nrow=B)
for (i in 1:B){
  if (unused[i]==0){
    deduct[i] <- 0
    carryover[i] <- 0
    used[i] <- 0
    if (unused[i] > 200)
      deduct[i] <- unused[i]-200
    carryover[i] <- 200
    used[i] <- carryover[i]+400
    if (unused[i] >0 & unused[i] <= 200)
      deduct[i] <- 0
    carryover[i] <- unused[i]
    used[i] <- carryover[i]+400
  }
}
View(data.frame(unused,deduct,carryover,used))

1 Ответ

2 голосов
/ 02 марта 2020

Похоже, вам не хватает нескольких заключительных фигурных скобок для ваших if условий. Следующее выполняется для меня и не генерирует ошибки отсутствующих переменных или несовпадающих строк:

options(width=10000)
unused <- round(runif(100000, 0, 600),0)

B <-10000
unused <-matrix(sample(unused,size=B,replace=TRUE),nrow=B)
deduct <- NULL
used <- NULL
carryover <- NULL

for (i in 1:B) {
  if (unused[i]==0) {
    deduct[i] <- 0
    carryover[i] <- 0
    used[i] <- 0
  }

  if (unused[i] > 200) {
      deduct[i] <- unused[i]-200
      carryover[i] <- 200
      used[i] <- carryover[i]+400
  }

if (unused[i] >0 & unused[i] <= 200) {
      deduct[i] <- 0
    carryover[i] <- unused[i]
    used[i] <- carryover[i]+400
  }
}

View(data.frame(unused,deduct,carryover,used))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...