Rの非na値を数える方法(3例)
次のメソッドを使用して、R の非 NA 値をカウントできます。
方法 1: データ フレーム全体で非 NA 値をカウントする
sum( ! is. na (df))
方法 2: データ フレームの各列の非 NA 値をカウントする
colSums( ! is. na (df))
方法 3: データ フレーム内のグループごとに非 NA 値をカウントする
library (dplyr) df %>% group_by(var1) %>% summarise(total_non_na = sum( ! is. na (var2)))
次の例は、次のデータ フレームでこれらの各メソッドを実際に使用する方法を示しています。
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
points=c(12, NA, 30, 32, 20, 22, 17, NA),
rebounds=c(10, 8, 9, 13, NA, 20, 8, 7))
#view data frame
df
team points rebounds
1 to 12 10
2 A NA 8
3 to 30 9
4 A 32 13
5 B 20 NA
6 B 22 20
7 B 17 8
8 B NA 7
方法 1: データ フレーム全体で非 NA 値をカウントする
次のコードは、データ フレーム全体の非 NA 値の合計をカウントする方法を示しています。
#count non-NA values in entire data frame
sum( ! is. na (df))
[1] 21
結果から、データ フレーム全体に21 個の非 NA 値があることがわかります。
方法 2: データ フレームの各列の非 NA 値をカウントする
次のコードは、データ フレームの各列の非 NA 値の合計をカウントする方法を示しています。
#count non-NA values in each column
colSums( ! is. na (df))
team points rebounds
8 6 7
結果から次のことがわかります。
- チーム列には NA 以外の値が8 つあります。
- ポイント列には NA 以外の値が6 つあります。
- バウンス列には NA 以外の値が7 つあります。
方法 3: グループごとに非 NA 値をカウントする
次のコードは、チーム列ごとにグループ化されたポイント列の非 NA 値の合計をカウントする方法を示しています。
library (dplyr)
df %>%
group_by(team) %>%
summarise(total_non_na = sum( ! is. na (points)))
# A tibble: 2 x 2
team total_non_na
1 to 3
2 B 3
結果から次のことがわかります。
- チームAのポイント欄にはNA以外の値が3つあります。
- チーム B のポイント列には NA 以外の値が3 つあります。
追加リソース
次のチュートリアルでは、R で欠損値を使用して他の一般的な操作を実行する方法について説明します。