我有以下类型的数据
ntrt = paste ("EL", 1:4, sep= "")
repl = 3
我想从 ntrt 中采样,但是 3 次(rep = 3),输出如下所示:
nsam <- c(sample(ntrt),sample(ntrt), sample(ntrt))
repl <- rep (1:3, each = length (ntrt))
newd <- data.frame (nsam, repl)
newd
nsam repl
1 EL3 1
2 EL1 1
3 EL4 1
4 EL2 1
5 EL2 2
6 EL4 2
7 EL1 2
8 EL3 2
9 EL1 3
10 EL3 3
11 EL4 3
12 EL2 3
这是我的循环试验:
nsam <- rep (NULL, ntrt)
for (i in 1:rep){
nsam[i] <- sample(ntrt)
}
编辑:只是澄清
ntrt
[1] "EL1" "EL2" "EL3" "EL4"
> sample(ntrt,4)
[1] "EL4" "EL3" "EL2" "EL1"
# is equal to:
sample(ntrt)
but what I need:
c(sample(ntrt), sample(ntrt), sample(ntrt))
[1] "EL4" "EL3" "EL1" "EL2" "EL1" "EL2" "EL3" "EL4" "EL3" "EL1" "EL2" "EL4"
which is equal to
c(sample(ntrt,4), sample(ntrt,4), sample(ntrt,4))
因此过程是:
# for repl = 1
sample from ntrt size = length(ntrt)
# repeat the same process again
# for repl = 2
sample from ntrt size = length(ntrt)
# note: I only concerned with order of names within ntrt (randomization process)
# repeat the same process again
# for repl = 3
sample from ntrt size = length(ntrt)
same process for n levels of repl
我收到错误,对不起一个简单的问题