我有一个数据框,我想从中提取 val
中的值大于 15 以及 val
不是 NA的记录
:
df[ !is.na(df$val) & df$val > 15, ]
由于我假设在 R 中经常需要这样的比较,所以我想知道是否可以将这种比较缩写为 somewow。事实上,如果这个问题已经在 StackOverflow 上被问到,我也不会感到惊讶 - 但我无法通过搜索找到它。
最佳答案
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")
关于r - 我可以缩写 df[ !is.na(df$val) & df$val > 15] 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55444397/