Я рекомендую не , используя родительский оператор области видимости <<-
, и вместо этого использовать вашу функцию с правильным дизайном и инкапсуляцией:
add_to_errors <- function(df1, ids, errors) {
rows_to_add <- df1[ids,]
errors <- rbind(errors, rows_to_add)
return(errors)
}
df1 <- data.frame(id=1:10, var1=rep(NA, 2), var2=rep(NA, 2))
errors <- data.frame()
errors <- add_to_errors(df1, c(1,2), errors)
errors <- add_to_errors(df1, c(6,7), errors)
errors
id var1 var2
1 1 NA NA
2 2 NA NA
6 6 NA NA
7 7 NA NA
Вышеприведенные функции были реорганизованы для принятия всех необходимых параметров в качестве входных данных, а выходными данными является кадр данных, сгенерированный с использованием вашей логики. При его вызове мы перекрываем (перезаписываем) кадр входных данных возвращаемым значением.