采样原始值并将其转换为否。它在样本中发生的时间

时间:2013-07-23 21:56:40

标签: r

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

1 个答案:

答案 0 :(得分:1)

我猜你想要什么,但可能就是这样:

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

sample生成您想要的样本,tabulate计算频率(手动指定最大值,因为它不会总是出现在样本中),lapply迭代过程5次,最后{ {1}}将所有内容绑定在一起。