3 つのサイト コホートのいずれかに含まれるサイトでのサンプリング イベントのシミュレーションを実行および管理するためのコードを作成しています。以下のコードを使用rep()
して、コホート識別子 (1、2、または 3) を割り当てます。
cohort <- rep(1:n.cohorts, n.sites)
私の問題を再現するには、次の行を実行する必要がありますが、重要な行を最初に置きましたrep()
。
n.cohorts <- 3
s <- 10 # total available sites in this example
# different proportions of the total can be allocated to each cohort, for example
prop.control <- 0.4 ; prop.int <- 0.4 ; prop.ref <- 1-(prop.int+prop.control)
n.control <- prop.control * s; n.int <- prop.int * s; n.ref <- prop.ref * s
n.sites <- c(n.control, n.int, n.ref)
今、n.sites
それ自体が戻ります
[1] 4 4 2
したがって、呼び出しを再度実行すると、次のように 10 個の項目のリストになるcohort <- rep(1:n.cohorts, n.sites)
と予想されます。しかし、私が得るのは9つだけです:cohort
[1] 1 1 1 1 2 2 2 2 3 3
> cohort
[1] 1 1 1 1 2 2 2 2 3
n.sites
が so: のように直接定義されている同じコードを実行すると、n.sites <- c(4, 4, 2)
期待する 10 個のアイテムが得られます。これを何度かやり直して、両方のシナリオn.sites
で同じ結果が得られることを確信しました。
なぜこれが起こるのか誰か説明できますか?よろしくお願いします。
デビッド