gpt4 book ai didi

r - 按组计算总缺失值?

转载 作者:行者123 更新时间:2023-12-05 00:48:07 26 4
gpt4 key购买 nike

编辑:输入

对此非常陌生。

我有一个类似的问题: group by and then count missing variables?

从该问题中获取输入数据:

df1 <- data.frame(
Z = sample(LETTERS[1:5], size = 10000, replace = T),
X1 = sample(c(1:10,NA), 10000, replace = T),
X2 = sample(c(1:25,NA), 10000, replace = T),
X3 = sample(c(1:5,NA), 10000, replace = T))

正如一位用户建议的那样,可以使用 summarise_each:

df1 %>% 
group_by(Z) %>%
summarise_each(funs(sum(is.na(.))))
#Source: local data frame [5 x 4]
#
# Z X1 X2 X3
# (fctr) (int) (int) (int)
#1 A 169 77 334
#2 B 170 77 316
#3 C 159 78 348
#4 D 181 79 326
#5 E 174 69 341

但是,我只想获取每组缺失值的总数。

我也试过了,但没用:R count NA by group

理想情况下,它应该给我类似的东西:

#       Z    sumNA 
# (fctr) (int)
#1 A 580
#2 B 493
#3 C 585
#4 D 586
#5 E 584

提前致谢。

最佳答案

您可以使用 tidyverse 方法。

require(tidyverse)
#Sample data
dat <- data.frame(group = rep(c("a", "b", "c", "d", "g"), 3),
y = rep(c(1, NA, 2, NA, 3), 3))


dat %>%
group_by(group) %>%
summarise(sumNA = sum(is.na(y)))

输出:

  group sumNA
<fct> <int>
1 a 0
2 b 3
3 c 0
4 d 3
5 g 0

编辑

但是,如果您有多个列,则可以使用 summarize_all(如果您想指定列,则可以使用 summarize_at;谢谢@bschneidr评论):

#Sample data
set.seed(123)
dat <- data.frame(group = sample(letters[1:4], 10, replace = T),
x = sample(c(1,NA), 10, replace = T),
y = sample(c(1,NA), 10, replace = T),
z = sample(c(1, NA), 10, replace = T))

dat %>%
group_by(group) %>%
summarize_all(.funs = funs('NA' = sum(is.na(.))))

# A tibble: 4 x 4
group x_NA y_NA z_NA
<fct> <int> <int> <int>
1 a 1 1 0
2 b 3 2 2
3 c 0 1 1
4 d 1 4 2

关于r - 按组计算总缺失值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53195961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com