1

t 有 20 个值,c 也有 20 个值 0、1。我对 t 矩阵感兴趣。这里我有一个循环,重复 5 次。每次 sel 给出 20 个值。我想将频率存储在 t.mat 中。但是我怎样才能得到所需的结果,结果表可能如下表所示

t <- 1:20

#  c <- seq(0:1, 10)

t.mat  <- array(dim = c(20, 5))

rep <- 5

 for(mm in 1:rep){
 sel <- sample(1:20, replace = TRUE)  
 tt <- t[sel]
 #   cc <- c[sel]
 t.mat[, mm] = tt[1:20]   # here the problem lies, I have no clue how

}

上面的输出可能如下所示。但 t 将是 20 个值,我大致只给出六行:

   t   v1   v2  v3  v4  v5
   1    1   0   1   0   1
   2    0   0   2   0   1
   3    0   1   1   1   0
   4    1   1   0   0   1
   5    2   0   2   1   0
   6    0   0   0   1   2
4

1 回答 1

1

我猜测你想要什么,但它可能是这样的:

do.call(cbind, lapply(1:5, function(i)
  tabulate(sample(t, replace = T), nbins = 20)))

sample生成您想要的样本,tabulate计算频率(手动指定最大值,因为它不会总是出现在样本中),lapply将过程迭代 5 次,最后do.call(cbind,按列将它们绑定在一起。

于 2013-07-23T22:22:15.023 回答