2

数値データと係数データを含むテーブル (data.frame) があり、そのうちのいくつかは文字変数 (「species」、「Fam_name」、「gear」など) であり、「重量」の小計 (合計) を計算したい各「ss」の「数値」変数。

「集計」関数を使用してみましたが、「ギア」変数の文字値を返すことができませんでした。

以下は私のテーブルの頭です

   survey station         ss species weight number bdep      lon      lat                       Sci_name       Fam_name gear
1 2012901       1 2012901001 CARSC04  11.20     20   23 37.61650 19.14900        Scomberoides lysan     CARANGIDAE   TB
2 2012901       1 2012901001 SCMGR02   0.98      2   23 37.61650 19.14900 Grammatorcynus bilineatus     SCOMBRIDAE   TB
3 2012901       2 2012901002 NOCATCH   0.00      0    6 38.48333 18.71667                  NO CATCH       NO CATCH   TB
4 2012901       3 2012901003 LUTLU06   5.65      1    6 38.48333 18.71667            Lutjanus bohar     LUTJANIDAE   TB
5 2012901       3 2012901003 SHACAB1   4.00      1    6 38.48333 18.71667         Triaenodon obesus CARCHARHINIDAE   TB
6 2012901       4 2012901004 NOCATCH   0.00      0    9 38.48333 18.71667                  NO CATCH       NO CATCH   TB

バインドを使用して2つを組み合わせる目的で、次のコードを使用してみましたが、

catch1<-aggregate(cbind(weight, number) ~ ss, data = catch, FUN = sum) 

catch2<-aggregate(cbind(survey, station, bdep, lon, lat, gear) ~ ss, data = catch, FUN=median) 

しかし、最初の行は私が望むことを行います-各「ss」の合計、他の結果は「ギア」の数値中央値になりますが、その特定の「ss」の「ギア」コードを返したいです。

「ギア」要素の再構築(BrodieG に感謝):

catch2$gear <- factor(levels(catch$gear)[catch2$gear], levels=levels(catch$gear))

問題が解決しました :-)

4

2 に答える 2

1

あなたの問題はgear、それが要因であるため、要因medianの数値の中央値を返すことです。試す:

catch2$gear <- factor(levels(catch$gear)[catch2$gear], levels=levels(catch$gear))

またはそのようなもので、 の係数を再構築しcatch2ます。

于 2014-02-16T00:19:59.343 に答える