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
答案 0 :(得分:1)
我猜你想要什么,但可能就是这样:
do.call(cbind, lapply(1:5, function(i)
tabulate(sample(t, replace = T), nbins = 20)))
sample
生成您想要的样本,tabulate
计算频率(手动指定最大值,因为它不会总是出现在样本中),lapply
迭代过程5次,最后{ {1}}将所有内容绑定在一起。