我可以缩写df [!is.na(df $ val)&df $ val> 15]吗?

时间:2019-03-31 19:04:18

标签: r dataframe comparison na

我有一个数据框,我想从中提取val中的值大于15且val不是NA的记录:

 df[ !is.na(df$val) & df$val > 15, ]

由于我假设R中经常需要这样的比较,所以我想知道该比较是否可以简化。实际上,如果在StackOverflow上已经问过这个问题,我不会感到惊讶-但我无法提出找到它的搜索。

1 个答案:

答案 0 :(得分:5)

subset省略了NA值,还避免了重复df

subset(df, val > 15)

which也消除了NA值,但必须重复df

df[which(df$val > 15), ]

dplyr软件包的filter类似于基础subset

library(dplyr)

df %>% filter(val > 15)

使用sqldf删除NA值。

library(sqldf)

sqldf("select * from df where val > 15")