【发布时间】:2018-08-21 14:08:19
【问题描述】:
所以我有一个数据框:
BMI<-c(18,25.2,31.5,19.6,11.1,25.2)
AGE<-c(21,35,45,60,99,21)
df<-data_frame(BMI,AGE)
当我将匹配运算符与 Age 一起使用时,它工作得很好(那些 30-50 岁的人显示为 true):
df<-df%>%mutate(MediumAge=if_else(AGE%in%30:50,TRUE,FALSE))
当我将匹配运算符与 BMI 一起使用时,它不会(BMI 在该范围内的人不会显示为 TRUE,唯一会显示的是 18 人):
df<-df%>%mutate(Medium=if_else(BMI%in%18:29,TRUE,FALSE))
显然 18 的 BMI 可能不是“中等”,但为了示例中的简单数据......
必须与小数位有关,但我在文档或解决方案中找不到任何内容
【问题讨论】:
-
也许使用
between? (dplyr包) -
BMI 是数字浮点广告
18:29给出整数值,它正在检查这些值是否完全匹配,但事实并非如此