Dplyr を使用して個別の値をカウントする方法 (例あり)


dplyrn_distinct()関数を使用して、次のいずれかの方法を使用して、R データ フレーム内の個別の値の数をカウントできます。

方法 1: 列内の個別の値を数える

 n_distinct(df$column_name)

方法 2: すべての列の個別の値をカウントする

 sapply(df, function (x) n_distinct(x))

方法 3: グループごとに個別の値をカウントする

 df %>%
group_by (grouping_column) %>%
summarize (count_distinct = n_distinct(values_column))

次の例は、次のデータ フレームでこれらの各メソッドを実際に使用する方法を示しています。

 library (dplyr)

#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(6, 6, 8, 10, 9, 9, 12, 12),
                 assists=c(3, 6, 4, 2, 4, 5, 5, 9))

#view data frame
df

  team points assists
1 to 6 3
2 to 6 6
3 to 8 4
4 to 10 2
5 B 9 4
6 B 9 5
7 B 12 5
8 B 12 9

方法 1: 列内の個別の値を数える

次のコードは、 n_distinct()を使用して、「チーム」列内の個別の値の数をカウントする方法を示しています。

 #count distinct values in 'team' column
n_distinct(df$team)

[1] 2

「チーム」列には2 つの異なる値があります。

方法 2: すべての列の個別の値をカウントする

次のコードは、 sapply()関数とn_distinct()関数を使用して、データ フレームの各列内の個別の値の数をカウントする方法を示しています。

 #count distinct values in every column
sapply(df, function (x) n_distinct(x))

   team points assists 
      2 5 6

結果から次のことがわかります。

  • 「チーム」列には2 つの異なる値があります
  • 「ポイント」列には5 つの異なる値があります
  • 「ヘルプ」列には6 つの異なる値があります

方法 3: グループごとに個別の値をカウントする

次のコードは、 n_distinct()関数を使用してグループごとの個別の値の数を数える方法を示しています。

 #count distinct 'points' values by 'team'
df %>%
  group_by (team) %>%
  summarize (distinct_points = n_distinct(points))

# A tibble: 2 x 2
  team distinct_points 
1 to 3
2 B 2

結果から次のことがわかります。

  • チーム A には3 つの異なるポイント値があります。
  • チーム B には2 つの別々のポイント値があります。

追加リソース

次のチュートリアルでは、dplyr を使用して他の一般的な操作を実行する方法について説明します。

dplyrを使用して値を再コード化する方法
dplyr で NA をゼロに置き換える方法
dplyr を使用して変数をグループ別に並べ替える方法
dplyrを使用してグループごとに最初の行を選択する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です