r - 缺少数据时如何使用 n() 按组计数案例
问题描述
我正在尝试summarise
使用平均数和案例数进行数据处理,而不计算丢失的数据。有可能做到n()
吗?N 的预期结果应该是3, 2
。
library(tidyverse)
df <- tibble(g = c(1, 1, 1, 2, 2, 2), x = c(1, 2, 3, 4, NA, 5))
df %>%
group_by(g) %>%
summarise(M = mean(x, na.rm = TRUE),
N = n()) %>%
ungroup()
#> `summarise()` ungrouping output (override with `.groups` argument)
#> # A tibble: 2 x 3
#> g M N
#> <dbl> <dbl> <int>
#> 1 1 2 3
#> 2 2 4.5 3
Created on 2020-12-16 by the reprex package (v0.3.0)
解决方案
用于complete.cases
获取完整/不完整行的逻辑向量,然后sum
按组获取向量的值。
df %>%
mutate(N = complete.cases(.)) %>%
group_by(g) %>%
summarise(M = mean(x, na.rm = TRUE),
N = sum(N), .groups = 'drop') %>%
ungroup()
## A tibble: 2 x 3
# g M N
# <dbl> <dbl> <int>
#1 1 2 3
#2 2 4.5 2
推荐阅读
- ios - 正确使用/构建 IOS 框架的问题
- python - flask 和 flask-wtf - 先前提交的表单出错
- java - Java - 是否可以在字符变量中存储像点这样的元字符?
- android - MotionLayout 结合 NavHostFragment
- wix - WiX 安装程序声称成功但没有采取任何实际行动
- python - 将函数指针从 C Dll 传递给 C Dll
- java - 如何在我的应用程序而不是网络浏览器中打开 URL?
- ruby-on-rails - 添加了一个带有引导程序的可点击弹出窗口,但每个弹出窗口都是相同的
- php - PHP:如何计算数据库中的值并创建计数的前 10 名排行榜
- ibm-infosphere - CDC 技术能否将更改复制到 Kafka 中?