首页 > 解决方案 > 为什么 which() 没有找到我序列中存在的特定数字?

问题描述

我以 0.1 个单位创建了一个从 0 到 20 的数字序列,但是 which() 无法找到 15.1,即使它在数据中。但是,如果我加入序列 which() 找到它。

a=NULL
a=as.numeric(c(seq(from=0,to=20,by=0.1)))
dat=as.data.frame(a)

which(dat$a==19.8)
which(dat$a==15.1) ## does not work!!! why?
which(dat$a==15.2) ## does not work!!! why?
which(dat$a==15.3) 

## but if I start from 15 it works
a=NULL
a=as.numeric(c(seq(from=15,to=20,by=0.1)))
dat=as.data.frame(a)

which(dat$a==19.8)
which(dat$a==15.1)

## or if I join to sequences it works
a=as.numeric(c(seq(from=0,to=14.9,by=0.1)))
b=as.numeric(c(seq(from=15,to=20,by=0.1)))
c=c(a,b)
dat=as.data.frame(c)
which(dat$c==19.8)
which(dat$c==15.1)

标签: rfunction

解决方案


推荐阅读