2016-05-11 10 views
1

私はこれに対する答えを見つけることができませんので、私はあなたの専門知識が必要です。ペアのランダム化と順序付けR

Rのデータセットをランダム化する必要があります。ここで、データセットは選択肢のセット(ここでは文字で表されます)を対にしています。しかし、私はまた、各セットについて、優先順位をランダム化する必要があります(これは最初に行われます)。さらに、ネガティブコントロール(XX)を含める必要があります。

(1) X A or A X 

(2) X B or B X 

(3) X C or C X 

(4) X D or D X 

(5) X E or E X 

(6) XX 

私は十分sample(1:6, 4)を使用して簡単に1-6をランダム化することができますが、私は同様にペアの順序のためにランダムに追加する方法がわからない:それはこのようになります。どんなアイデアも素晴らしいです!

答えて

1

は、データの元のセットは次のようになりますと仮定すると信じている:

li 
[[1]] 
[1] "X" "A" 

[[2]] 
[1] "X" "B" 

[[3]] 
[1] "X" "C" 

[[4]] 
[1] "X" "D" 

[[5]] 
[1] "X" "E" 

[[6]] 
[1] "X" "X" 

することができますリストのレベルと各ペアのレベルで次のようにランダム化します。

lapply(li, function(pair) pair[sample(1:2)])[sample(1:6)] 
[[1]] 
[1] "X" "D" 

[[2]] 
[1] "B" "X" 

[[3]] 
[1] "E" "X" 

[[4]] 
[1] "X" "X" 

[[5]] 
[1] "X" "A" 

[[6]] 
[1] "C" "X" 
+0

これは素晴らしいことです!ありがとうございました!! –

0

私は質問を理解している場合、下記の少し強引ですが、私はあなたの質問に答える

s<- c("a","b","c","d","e","x") 
n<-6 

(x<-cbind(sample(s,n),rep("x",n))) 

for (i in 1:n) { 
    if(sample(1:2,1)==2) { 
    tmp<-x[i,1] 
    x[i,1] <- x[i,2] 
    x[i,2] <- tmp 
    } 
} 
x 
+0

Psidomのソリューションは、私が今投稿したものよりも簡単に効率的です。 – greengrass62

+0

それは大丈夫です、私は助けに感謝します! –

0

立っている;ランダムな順序で2回からサンプリングするLETTERS[1:5]LETTERS[24]X)があります。これで済むはずです。

c(sample(LETTERS[c(1:5, 24)], 1), LETTERS[24])[sample(2)] 

c(        ## combination of 
sample(LETTERS[c(1:5, 24)], 1), ## A:E, X, sampled once 
LETTERS[24])      ## and X 
[sample(2)]      ## re-sampled 

set.seed(1337) 
[1] "X" "D" 

可能性のある結果のリスト。

set.seed(1337) 
replicate(10, c(sample(LETTERS[c(1:5, 24)], 1), LETTERS[24])[sample(2)]) 
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
[1,] "X" "C" "X" "X" "E" "X" "C" "E" "X" "X" 
[2,] "D" "X" "X" "A" "X" "A" "X" "X" "D" "X" 
+0

Jonathan、出力に "X"/"B"の組み合わせが表示されません。繰り返す前に6つの組み合わせをすべて強制するバリアントはありますか? – greengrass62

+0

これはランダムではありません。反復をより高く設定すると(例えば、同じシードの100)、反復12,14,50,52,64,80,84,85,89に「X」/「B」が表示されます。 –

+0

はい、そうです。私はエリスがアンケートと回答、またはその行に沿ったものを無作為化していたことを考えて質問を読んでいました。 (いずれにしても、あなたの答えで何かを学んだ...きちんと) – greengrass62

関連する問題