1

を使用してランク付けされたセットのサンプリングをプログラムしようとしていRます。2 * n ^ 2のアイテムがあり、それらをランダムに2つの同じサイズのグループに分割し、各グループにn^2のアイテムを配置します。次に、これらの各グループのランク付けされたセットサンプリングを使用して、各RSSブロックにn個のアイテムを含むn個のRSSブロックを形成します。

私が試したことを以下に示します。

n<-4
id<-1:(2*n^2)
s1<-sample(id,n^2)
s2<-id[-s1]

block<-rep(1:(2*n),each=n)
d<-data.frame(block)

ここで、特定のRSSブロックでどのIDが選択されているかを示すrssという名前のデータフレームの列が必要です。

私は得意ではありませんR。私はこれを試していました:

for(i in 1:n){
d$rss<-ifelse(d$block==i,sample(s1,n),0)
#s1<-s1[-which(s1==d$rss)]
}

for(i in 1:n){
d$rss<-ifelse(d$block==i,sample(s2,n),0)
#s2<-s2[-which(s2==d$rss)]
}

私が知っていることは非常に間違っています!誰か助けてもらえますか?

4

1 に答える 1

1

必要な出力の例を示す必要がありますが、私の最善の推測を示します。

d <- transform(d,rss = ifelse(d[,"block"]<=n, sample(s1), sample(s2)))

または、より整理された方法で:

d <- transform(d,block.id = rep(1:n))
d <- transform(d,rss = ifelse(d[,"block"]<=n, sample(s1), sample(s2)))

library(reshape2)
d <- dcast(d,block ~ block.id, value = rss)
于 2013-01-20T01:34:01.077 に答える