如何在R中创建尺寸为M x N的数据框

nev*_*int 3 r dataframe

有办法吗?

我坚持这个:

m <- 10 # nof row
n <- 5  # nof column

# We will fill each cell with '0'

all <-c()
for (i in 1:m) {
   row_i <- c(rep(0,n))
   all <- c(all,row_i)
}
Run Code Online (Sandbox Code Playgroud)

其中只创建1行作为输出.

mds*_*ner 7

为什么不使用矩阵?data.frames用于存储不同类型的列.

所以,

m = 10
n = 5
mat = matrix(0, nrow = m, ncol = n)
Run Code Online (Sandbox Code Playgroud)

如果你真的想要一个data.frame,强制一个 - 列名将只是一个默认值:

dat = as.data.frame(mat)
names(dat)
[1] "V1" "V2" "V3" "V4" "V5"
Run Code Online (Sandbox Code Playgroud)

您的方法的问题是您只需依次追加值,忽略您想要的维度.你可以这样做,但是增长数据并不是一个好主意,更好的是如上所述预先分配数据.而且,无论如何,这会产生矩阵,我认为这是你应该使用的.

警告:错误的代码!

m <- 10 # nof row
n <- 5  # nof column

all <- NULL
for (i in 1:m) {
  row_i <- c(rep(0,n))
  all <- rbind(all,row_i)
}
Run Code Online (Sandbox Code Playgroud)