如何计算r中的非na值(3个例子)
可以使用以下方法对R中的非NA值进行计数:
方法一:统计整个数据帧中的非NA值
sum( ! is. na (df))
方法二:统计数据框每一列中的非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
方法一:统计整个数据帧中的非NA值
下面的代码展示了如何统计整个数据帧中非NA值的总数:
#count non-NA values in entire data frame
sum( ! is. na (df))
[1] 21
从结果中我们可以看到整个数据帧中有21个非NA值。
方法二:统计数据框每一列中的非NA值
下面的代码展示了如何统计数据框每一列中非NA值的总数:
#count non-NA values in each column
colSums( ! is. na (df))
team points rebounds
8 6 7
从结果我们可以看出:
- team栏中有8个非NA值。
- 点列中有6 个非 NA 值。
- 跳出率栏中有7 个非 NA 值。
方法三:按组统计非NA值
下面的代码展示了如何计算points列中的总非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队的积分栏中有3个非NA值。
- B队的积分栏中有3个非NA值。
其他资源
以下教程解释了如何在 R 中执行缺失值的其他常见操作: