私は2つの列、metro、stateを持つデータセットを持っています。私は今だけ最大カウントされているデータフレーム内の行をフィルタリングし、残りを残したいdplyr groupbyに基づいて行をフィルタリングし、出力を集計します
metro State count
A OH 703
A NJ 3
B GA 1453
B CA 456
B WA 123
、私は次の出力を得る
data %>% group_by(metro, State) %>% summarise(count = n())
、dplyrで次のコマンドを与えます。私は対応する行をフィルタリングする必要があります。次のコマンドの行をフィルタリング後の出力は、すべての地下鉄は、最大カウントの状態であり、残りが除去された状態のみを持っている
data %>% group_by(metro, State) %>% summarise(count = n())
metro State count
A OH 703
B GA 1453
でなければなりません。
以下は私がしようとしている、
data %>% group_by(metro, State) %>% filter(n() == max(n()))
をしかし、これは再度、入力と同じデータフレームを配っています。
誰でもこの作業を手伝うことができますか?私の出力はすべてのメトロが最大数を持つ一意の状態を持つ必要があり、残りの状態エントリは削除する必要があります。
data1 <- data %>% group_by(metro, State) %>% mutate(count = n()) %>%
group_by(metro) %>% filter(count == max(count))
nrow(data1)
'データ%>%GROUP_BY(地下鉄)%>%フィルタ(== MAX(カウント)をカウント)' – Psidom
@Psidomこれはまだ私を与えるを使用することができますメトロでグループ化するとカウントが加算され、最大エントリーを除外できないため、同じ出力です。 – haimen
@Psidom要約後にフィルタリングすることができました。私の質問は、元のデータフレームを対応する行でフィルタリングすることです。以前にデータフレームに2738行がある場合、フィルタリング後に2156行が必要です。 (3、456、123)カウントに対応する行は削除する必要があります。 – haimen