2
(フィルタリング後の)データフレーム内の各グループの数と割合(すべての要素のうちの)が必要です。このコードは、所望の出力を生成します。dplyrフィルタリング後のグループ全体の行数
library(dplyr)
df <- data_frame(id = sample(letters[1:3], 100, replace = TRUE),
value = rnorm(100))
summary <- filter(df, value > 0) %>%
group_by(id) %>%
summarize(count = n()) %>%
ungroup() %>%
mutate(proportion = count/sum(count))
> summary
# A tibble: 3 x 3
id count proportion
<chr> <int> <dbl>
1 a 17 0.3695652
2 b 13 0.2826087
3 c 16 0.3478261
ungroup()
と第二summarize()
ステップを回避するためのエレガントな解決策があります。ような何か:
summary <- filter(df, value > 0) %>%
group_by(id) %>%
summarize(count = n(),
proportion = n()/[?TOTAL_ROWS()?])
私はドキュメントのような機能を見つけることができませんでしたが、私は何かを明らかに不足している必要があります。ありがとう!全データフレームを参照
パーフェクト感謝を! '.'について知らなかった –
あなたは大歓迎です。 – Psidom