-1

44.400個の遺伝子のユニバースから1652個の遺伝子の1000個のランダムリストを作成したいと思います。交換することにしました。次の手順を使用して、ランダムリストを作成しました。

randomMatrix<-replicate(1000, sample(gene_list, 1652, replace = T))

重要なのは、各リストで遺伝子が複製されているということです。私の研究では、遺伝子はリスト間で複製できますが、各リストでは複製できません。各リストの遺伝子を複製しないようにするにはどうすればよいですか?

前もって感謝します

4

2 に答える 2

2

それはで動作するはずreplace = FALSEです:

randomMatrix<-replicate(1000, sample(gene_list, 1652, replace = FALSE))

もちろん、これには少なくとも1652個の一意の値が必要gene_listです。

于 2012-10-05T14:16:47.450 に答える
0

あなたが私たちにそのような例を与えなかったので、再現可能な例はあなたの問題を説明するのに良いでしょう私はただ仮定していくつListの複製をしました

List <- list(c(2,1,3,4,5,6), c(1,4,5,7,0,6), c(2,4,7,9,3,1))
set.seed(001)
replicate(3, lapply(List, sample, 7, replace=TRUE), simplify = FALSE)

を生成します

[[1]]
[[1]][[1]]
[1] 1 3 4 6 1 6 6

[[1]][[2]]
[1] 7 7 1 4 4 0 5

[[1]][[3]]
[1] 3 7 3 1 7 3 1


[[2]]
[[2]][[1]]
[1] 1 4 2 1 3 2 3

[[2]][[2]]
[1] 6 5 5 7 5 4 0

[[2]][[3]]
[1] 3 3 2 3 7 3 9


[[3]]
[[3]][[1]]
[1] 5 4 4 5 2 3 5

[[3]][[2]]
[1] 0 5 6 5 4 1 1

[[3]][[3]]
[1] 4 9 9 7 1 4 7

このアプローチでは、元のリストの各要素のリサンプリングされたデータ(置換あり)が提供されることに注意してください。そのため、各レプリケーションは、それぞれ3つの要素で構成されるリストです。

結果の出力の内部ではsapplyなく書き込みを行うと、より良い結果が得られます。lapplyreplicate(...)

set.seed(001)
replicate(3, sapply(List, sample, 7, replace=TRUE), simplify = FALSE)
[[1]]
     [,1] [,2] [,3]
[1,]    1    7    3
[2,]    3    7    7
[3,]    4    1    3
[4,]    6    4    1
[5,]    1    4    7
[6,]    6    0    3
[7,]    6    5    1

[[2]]
     [,1] [,2] [,3]
[1,]    1    6    3
[2,]    4    5    3
[3,]    2    5    2
[4,]    1    7    3
[5,]    3    5    7
[6,]    2    4    3
[7,]    3    0    9

[[3]]
     [,1] [,2] [,3]
[1,]    5    0    4
[2,]    4    5    9
[3,]    4    6    9
[4,]    5    5    7
[5,]    2    4    1
[6,]    3    1    4
[7,]    5    1    7
于 2012-10-05T14:15:56.573 に答える