Это потому, что вы сделали dep
вектором (по умолчанию это 1D), но вы пытаетесь сохранить в нем 2-мерный объект.
Вы можете dep
отключить как NULL
и rbind
(связывание строк) с ним в цикле. Также обратите внимание, что вместо использования count
в цикле вы можете просто использовать i
:
dep <- NULL
for (i in 1:N){
dep <- rbind(dep, ceiling(runif(9, min=0, max=20)))
}
# if you look at dep now it's a 2D matrix.
# We'll convert to data frame
dep <- as.data.frame(dep)
Однако , есть более простой способ сделать это. Вам не нужно генерировать dep
построчно, вы можете сгенерировать его заранее, создав вектор, содержащий 9*N
из ваших округленных равномерных распределительных чисел:
dep <- ceiling(runif(9*N,min=0,max=20))
Теперь dep
в настоящее время является вектором длины 9 * N. Давайте сделаем это в матрицу Nx9:
dep <- matrix(dep,nrow=N)
Готово! * * 1023
Таким образом, вы можете сделать весь свой код выше в одной строке:
dep <- matrix( ceiling(runif(9*N,min=0,max=20)), nrow=N )
Если вы хотите, вы можете позвонить data.frame
на dep
(после того, как он был переведен в форму 2D-матрицы), чтобы получить фрейм данных.