リージョンごとに1つのランダムなサイトを作成し、新しいデータフレームを作成してすべてのサイトがサンプリングされるまでこれらのプロセスを繰り返します。したがって、各データフレームには同じ地域の同じサイトが含まれません。グループごとに無作為にサンプリングし、グループ内のすべてのエンティティがサンプリングされるまで、新しいデータフレームを作成します。
私の実際のデータフレームのいくつかのリージョンには、他のリージョンより多くのサイト(リージョンCのサイトが4つあります)があります。私はそれらの行を削除したい(おそらく私は複数のデータフレームを作成する前にこれを行う必要があります)。ここ
は、例えばデータフレーム(実際の一つは> 100の領域およびリージョンあたり> 10の部位を有する)である:3回以下のコードを繰り返す
mydf <- read.table(header = TRUE, text = 'V1 V2 Region Site
5 1 A X1
5 6 A X2
8 9 A X3
2 3 B X1
3 1 B X2
7 8 B X3
1 2 C X1
9 4 C X2
4 5 C X3
6 7 C X4')
は、所定のための同じ部位を含むデータフレームを生成しますリージョン(2番目と3番目のテーブルの両方にリージョンAのサイトX2があります)。
do.call(rbind, lapply(split(mydf, mydf$Region), function(x) x[sample(nrow(x), 1), ]))
V1 V2 Region Site
A 8 9 A X3
B 2 3 B X1
C 6 7 C X4
V1 V2 Region Site
A 5 6 A X2
B 7 8 B X3
C 9 4 C X2
V1 V2 Region Site
A 5 6 A X2
B 3 1 B X2
C 6 7 C X4
あなたは、すべてのデータフレームがすべての領域が含まれていますが、各データフレームは独自の地域サイトの組み合わせを含むように私は、複数のデータフレームを作成して助けてくださいでした。
EDIT:ここに出力があります。これらを生成するには、最初のサンプリングで、各リージョンからランダムに1つのサイト(行)を引き出し、データフレームを作成します。 2回目のサンプリングでは、同じプロセスを繰り返しますが、特定のリージョンの同じサイトを描画することはできません。私が望むのは、Region-Siteのユニークな組み合わせを含む独立したデータフレームです。
V1 V2 Region Site
5 1 A X1
7 8 B X3
1 2 C X1
V1 V2 Region Site
5 6 A X2
3 1 B X2
4 5 C X3
V1 V2 Region Site
8 9 A X3
2 3 B X1
9 4 C X2
Rコーディングについての質問は、ここでは一般的に話題にはなりません。私はこれが[SO]の話題になると思う。あなたが待っているなら、私たちはそれをそこに移そうとすることができます。 – gung
申し訳ありません。それを移行していただきありがとうございます。 –
期待される出力を表示できますか? – akrun