1

私はRを使用する初心者です:)データベースから27個のサブグループ(3列g1、g2、g3で決定)を抽出し、2)Histダイアグラムをプロットし、3)各サブグループの0.05分位数を計算しようとしています。今までやっていたことは、以下のコードを使って1つずつ処理を行っていたのですが、効率的ではありません。誰かがそれに対するより良い解決策を知っていますか? どんな助けでも大歓迎です!

私のコードのいくつか:

g111<-residQ_grouped[residQ_grouped$g1==1&residQ_grouped$g2==1&residQ_grouped$g3==1,]  
g112<-residQ_grouped[residQ_grouped$g1==1&residQ_grouped$g2==1&residQ_grouped$g3==2,]                                                                                                    
until to(27 times)  
g333<-residQ_grouped[residQ_grouped$g1==3&residQ_grouped$g2==3&residQ_grouped$g3==3,]

プロットについては、
hist(g111$value,breaks=300,freq=T,border=F,col="lightblue",xlim=c(-0.3,0.3),...)手動で 27 回行う必要があります。

0.05 Quantile の場合も同じです。

Quant_g111  <-  quantile(g111$tau0.50,0.05)  
Quant_g112  <-  quantile(g112$tau0.50,0.05)  
Quant_g113  <-  quantile(g113$tau0.50,0.05)

...27回

以下は、データベース構造の例です。

Value   g1  g2  g3    
1   1   1   1  
2   1   1   2  
1   1   1   3  
9   1   2   1  
6   1   2   2  
2   1   2   3  
4   1   3   1  
7   1   3   2  
9   1   3   3  
2   2   1   1  
3   2   1   2  
6   2   1   3  
8   2   2   1  
1   2   2   2  
9   2   2   3  
2   2   3   1  
8   2   3   2  
8   2   3   3  
3   3   1   1  
8   3   1   2  
1   3   1   3  
5   3   2   1  
3   3   2   2  
5   3   2   3  
5   3   3   1  
4   3   3   2  
8   3   3   3  

.....

4

1 に答える 1

3

私ができることは次のとおりです (ワークスペースに 27 * 3 オブジェクトを作成することには固く抵抗します)。

 g.grouped <- split(residQ_grouped, interaction(residQ_grouped[, 2:4]) )
 # For testing I created an expanded dataset
 residQ_grouped <- cbind(residQ_grouped , tau=rnorm(27*10))

これにより、27 ページのヒストグラムのパケットが作成されます。(1 ページに 9 を配置するために を使用することを検討しlayoutてください。)

 pdf("quant_output.pdf", onefile=TRUE)
   lapply(names(g.grouped), function(x){ hist(g.grouped[[x]]$tau, 
          main=bquote(Histgram~of~.(x)), breaks=5, freq=T, border=F, 
          col="lightblue", xlim=c(-3,3) ) } )
 dev.off()

おそらく「tau」列がそこにあると思われますが、どこにあるのかは明確ではありません。それが同じデータフレーム内の列であると仮定すると、次のようになります。

 g.quans <- lapply( lapply(g.grouped, "[[", "tau") , # first extract the columns
                    quantile, 0.05)                # then calculate the quantiles
于 2013-10-10T09:37:40.537 に答える