如何计算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 中执行缺失值的其他常见操作:

如何在R中查找和计算缺失值
如何在R中全部估算缺失值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注