【发布时间】:2021-11-28 05:49:10
【问题描述】:
我有这个 df
df <- data.frame(
id = c(1L,1L,1L,2L,2L,3L),
keyword = c("car","hospital",NA,"cat",NA,NA))
我想要这个
df <- data.frame(
id = c(1L,1L,2L,3L),
keyword = c("car","hospital","cat",NA))
如果有关键字,我想保留它,如果没有,请保留 NA
尝试类似的东西
df %>% group_by(id) %>% filter(!is.na(keyword) | keyword != " ")
【问题讨论】:
-
如果一个 id 有多个关键字不是 NA 怎么办。 (假设 id 是您正在谈论的分组变量)?此外,您可以尝试
library(dplyr); df %>% group_by(id) %>% arrange(keyword) %>% summarise(keyword = first(keyword))这将保留每个 id 的第一个非 NA(如果有)关键字。 -
@dario 谢谢你,我向你提出了一些建议,并提供了更多类似的数据框。
标签: r filter conditional-statements