如何在R语言中查找列中非整数数值的行?偏好tidyverse方法
筛选数据框中y列为非整数的行
用tidyverse的dplyr包可以轻松实现这个需求,核心思路是判断数值是否与其整数部分不相等:
library(tidyverse) # 构造数据框 df <- data.frame(id = c("a", "a", "a", "a", "a", "b", "b", "b", "b"), y = c(1.000, 2.000, 3.000, 4.000, 5.345, 1.000, 2.000, 3.000, 4.670)) # 筛选y列为非整数的行 result <- df %>% filter(y != floor(y)) print(result)
运行后得到的结果:
id y 1 a 5.345 2 b 4.670
你也可以用取余的方式判断,效果完全一致:
df %>% filter(y %% 1 != 0)
如果遇到浮点数精度问题(比如实际是整数但存储为1.0000000001这类近似值),可以先对数值做近似处理后再判断:
df %>% filter(!near(y, floor(y)))
内容的提问来源于stack exchange,提问作者aerw4
相关产品推荐
相关产品推荐

