次のタイプのデータがあります
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
エラーが発生しています。単純な質問で申し訳ありません