Я немного растерялся.Я научился никогда не выращивать вектор, потому что мы не хотим каждый раз создавать новую копию объекта.
# Bad
start <- Sys.time()
vector1 <- vector()
for(i in 1:100000000) {
vector1[i] <- i
}
end <- Sys.time()
print(end - start)
Time difference of 17.06454 secs
# Good
vector2 <- vector(length = 100000000)
start <- Sys.time()
for(i in 1:100000000) {
vector2[i] <- i
}
end <- Sys.time()
print(end - start)
Time difference of 4.50159 secs
Результаты, как правило, подтверждают это, однако, например, я читаю здесь: http://adv -r.had.co.nz / Functional-software.html что-то вроде этого: «Изменяемое состояние обычно сложно, потому что каждый раз, когда он выглядит, как будто вы модифицируете объект, вы фактически создаете изатем изменив копию. "
Так я не создаю копию каждый раз, когда сохраняю новое значение внутри вектора в примере 2?Разве это обычно не должно быть даже медленнее, потому что на каждой итерации копируется вектор размером 100.000.000?
Что я здесь не понимаю?