が私のデータセットのようなものの一部であるRでのサマリー表を作成します。私は、それぞれが1(0 0.25から0.75への値のために基づいてラベルをPERCENT_RANK割り当てカウントサイトごとにラベルと以下
require(dplyr)
alldata
site date percent_rank Label
01A 2013-01-01 0.32 Normal
01B 2013-01-01 0.12 Low
01C 2013-01-01 0.76 High
02A 2013-01-01 0 N/A
02B 2013-01-01 0.16 Low
02C 2013-01-01 0.5 Normal
01A 2013-01-02 0.67 Normal
01B 2013-01-02 0.01 Low
01C 2013-01-02 0.92 High
3つのカテゴリ)。私は今、この形式で集計表を作成したいと思います:
site Low Normal High Missing
01A 32 47 92 194
01B 232 23 17 93
01C 82 265 12 6
各サイトは、そのサイトのラベルを持つすべての日付のために、低ノーマル、および高い値の出現数を持っているでしょう(のためのものがあります毎年)、N/A値は「Missing」列にカウントされます。
私は次のことを試してみました:
すべてのレコードの合計値ではなく、サイトごとに「低」の数、およびいくつかの値を返しますalldata <- %>% group_by(site) %>% mutate(length(which(Label == "Low")))
を返し
alldata <- %>% group_by(site) %>% mutate(length(Label == "Low"))
レコードの合計数よりも1000多い。アイデアは、4つの別々のmutate行(各カテゴリに1つずつ)を持つ4つの新しい列を作成するためにこの関数を繰り返すことで、サマリー表が作成されるということでした。私は、関数のコンポーネントは、私がやろうとしていることについて私にはあまり明確ではなかったが、aggregate()のバリエーションをいくつか試しました。これはかなり簡単なことであると思われます(group_byはパーセントランクと関連ラベルの計算に役立ちました)が、まだ解決策を見つけることができませんでした。どんなヒントも大歓迎です!
'dplyr'パッケージに' count'関数があります。たぶん役立つかもしれません。 – user2100721
''の長さで十分ですが、論理ベクトルであれば、 'sum'がカウントを与えます。 – akrun