[英]How to not include NA observations in grouping when using group_by() followed by summarize() with dplyr?
我有一个电话号码、电子邮件和姓名的数据框。 一些电子邮件是重复的,名称拼写不同。 我真的不在乎留下哪个名字,所以我通过电子邮件分组,并总结选择首先观察姓名和电话号码。 但是,有一些电子邮件地址丢失,但我不想将它们组合在一起,以便保留唯一的电话号码。 使用一个简化的例子,我的数据是:
data <- data.frame(x=c(1,2,3,4,5,5,5,6), y=c("a","b","c",NA,"d","d","d",NA))
data %>% group_by(y) %>% summarize(x=first(x))
当我这样做时,我失去了数字 6。 如何防止 NA 组合在一起并被汇总?
可能单独处理NA
并将它们绑定到原始数据。
library(dplyr)
data %>%
filter(!is.na(y)) %>%
group_by(y) %>%
summarize(x=first(x)) %>%
bind_rows(data %>% filter(is.na(y)))
# A tibble: 6 x 2
# y x
# <fct> <dbl>
#1 a 1
#2 b 2
#3 c 3
#4 d 5
#5 NA 4
#6 NA 6
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.