R按值选择,避免NA
我尝试按值提取行。
col1 <- c("A", "B", "C", NA)
df <- data.frame(col1)
df$col1[col1 == "A"]
控制台中的结果是
> df$col1[col1 == "A"]
[1] "A" NA
但当然我只想要“A”。如何避免 R 选择 NA 值?顺便说一下,我认为这种行为非常危险,因为许多人会陷入这个陷阱,例如替换值、子集等。
回答
filter从dplyr自动丢弃NA即使关系运算符是元件==
library(dplyr)
df %>%
filter(col1 == 'A') %>%
pull(col1)
#[1] "A"
或者使用sbt(用于子集化)来自collapse
library(collapse)
sbt(df, col1 == 'A')$col1
#[1] "A"