R中同时具有整数和NA的过滤元素
Filter elements with both integer and NA in R
我对R比较陌生,有一个简单的问题。
我有如下 df。
df <- data.frame(T = c('A','A','B','B','C','D'), P = c(10, NA, 22, NA,33,NA))
经过一些过滤过程后,我只想查看 P 列中同时具有整数和 NA 的元素:在这种情况下,只剩下 A 和 B。
得到这个的最好方法是什么?
在此先感谢您的帮助!
我们可以在 filter
中使用条件在分组后同时具有 NA
和 non-NA - is.na
returns TRUE for NA, !
转换 TRUE
-> FALSE
反之亦然。逻辑向量的sum
得到计数,然后将其转化为逻辑向量(> 0
- NA大于0的计数,non-NA大于0的计数)
library(dplyr)
df %>%
group_by(T) %>%
filter(sum(is.na(P)) > 0, sum(!is.na(P)) > 0) %>%
ungroup
-输出
# A tibble: 4 × 2
T P
<chr> <dbl>
1 A 10
2 A NA
3 B 22
4 B NA
我对R比较陌生,有一个简单的问题。 我有如下 df。
df <- data.frame(T = c('A','A','B','B','C','D'), P = c(10, NA, 22, NA,33,NA))
经过一些过滤过程后,我只想查看 P 列中同时具有整数和 NA 的元素:在这种情况下,只剩下 A 和 B。
得到这个的最好方法是什么?
在此先感谢您的帮助!
我们可以在 filter
中使用条件在分组后同时具有 NA
和 non-NA - is.na
returns TRUE for NA, !
转换 TRUE
-> FALSE
反之亦然。逻辑向量的sum
得到计数,然后将其转化为逻辑向量(> 0
- NA大于0的计数,non-NA大于0的计数)
library(dplyr)
df %>%
group_by(T) %>%
filter(sum(is.na(P)) > 0, sum(!is.na(P)) > 0) %>%
ungroup
-输出
# A tibble: 4 × 2
T P
<chr> <dbl>
1 A 10
2 A NA
3 B 22
4 B NA