这是因为你已经做了dep
一个向量(默认情况下是一维的),但你试图在其中存储一个二维对象。
You can dep
off as NULL
and 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)
However,有一种更简单的方法可以做到这一点。你不必生成dep
逐行,您可以通过制作包含以下内容的向量来预先生成它9*N
您的舍入均匀分布数:
dep <- ceiling(runif(9*N,min=0,max=20))
Now, dep
当前是长度为 9*N 的向量。让我们把它变成一个 Nx9 矩阵:
dep <- matrix(dep,nrow=N)
Done!
所以你可以在一行中完成上面的所有代码:
dep <- matrix( ceiling(runif(9*N,min=0,max=20)), nrow=N )
如果你愿意的话可以打电话data.frame
on dep
(在将其放入二维矩阵形式之后)以获得数据框。