1

大きなデータフレーム (base_cov_norm_compl_taxid3) があり、各行はゲノム領域を表し、各列はサンプル内のその領域のカバレッジを表します。各タクシードには複数のゲノム領域があり (ゲノムに似ています)、集約を使用して、同じタイプのすべてのゲノム領域の手段と sd などを見つけたいと思います。

 base_cov_norm_compl_taxid3[1:10,1:10]
                               geneid_stst attr   taxid
1  1001585.66299.NC_015410_1089905_1090333 mrkg 1001585
2  1001585.66299.NC_015410_1090348_1090740 mrkg 1001585
3  1001585.66299.NC_015410_1215751_1216851 mrkg 1001585 
4  1001585.66299.NC_015410_2346036_2347421 mrkg 1001585
5  1001585.66299.NC_015410_2354962_2429569 PFPR 1001585
6  1001585.66299.NC_015410_2610633_2611913 mrkg 1001585
7  1001585.66299.NC_015410_3224232_3225248 mrkg 1001585
8  1001585.66299.NC_015410_3682375_3683115 mrkg 1001585
9  1001585.66299.NC_015410_4101816_4103195 mrkg 1001585
10 1001585.66299.NC_015410_4141587_4142873 mrkg 1001585
                       locus X765560005.stool1 X764224817.stool1       MH0008
1  NC_015410_1089905_1090333                 0                 0 0.0000000000
2  NC_015410_1090348_1090740                 0                 0 0.0000000000
3  NC_015410_1215751_1216851                 0                 0 0.0000000000
4  NC_015410_2346036_2347421                 0                 0 0.0281385281
5  NC_015410_2354962_2429569                 0                 0 0.0005361355
6  NC_015410_2610633_2611913                 0                 0 0.0000000000  
7  NC_015410_3224232_3225248                 0                 0 0.0000000000
8  NC_015410_3682375_3683115                 0                 0 0.0000000000 
9  NC_015410_4101816_4103195                 0                 0 0.0000000000
10 NC_015410_4141587_4142873                 0                 0 0.0000000000
       V1.CD9.0 X764062976.stool1 X160643649.stool1
1  0.0000000000                 0                 0
2  0.0000000000                 0                 0
3  0.0000000000                 0                 0
4  0.0000000000                 0                 0
5  0.0004557152                 0                 0
6  0.0000000000                 0                 0
7  0.0000000000                 0                 0
8  0.0000000000                 0                 0
9  0.0000000000                 0                 0
10 0.0000000000                 0                 0

このタイプのゲノム領域は常に複数存在し、ゲノムごとにmrkg複数の PFPR 領域が存在する場合もあります。taxidとで集計したいのですがattr、 があるもののみですattr=mrkg。これを行う方法がわかりません。以下のコードは、taxid と attr で集計するように機能しますが、最初にサブセット化を書きたいlist(base_cov_norm_compl_taxid3$taxid,base_cov_norm_compl_taxid3$attr=mrkg)ですか?

助けていただければ幸いです。

base_cov_mean<-aggregate(base_cov_norm_compl_taxid3[,5:266],
  list(base_cov_norm_compl_taxid3$taxid,
  base_cov_norm_compl_taxid3$attr),mean)
4

2 に答える 2

1

あなたが使用することができますdata.table

  • 最適化されてmeanいるため、非常に高速になります。
  • subset呼び出し内でを定義することも簡単です。
  • @Dwinのソリューションのすべての利点があり、多くの'swithでコードを汚染する必要はありません$

ここに例があります

library(data.table)
DT <- data.table( base_cov_norm_compl_taxid3)
# the columns of which you want the eman
columns_of_interest <- names(DT)[5:266]
DT[attr %in% 'mrkg', lapply(.SD, mean), by = list(taxid, attr), .SDcols = columns_of_interest]
于 2012-09-10T23:24:55.053 に答える
1
 subdf <- subset(base_cov_norm_compl_taxid3, attr %in% "mrkg")
 base_cov_mean <- with(subdf,    aggregate(subdf[5:266], 
                                   by=list(taxid, attr),
                                   FUN=mean)  
                        )

一般化されていないため、使用attr == "mrkg"しませんでした。

于 2012-04-17T12:19:51.417 に答える