如何处理/处理实数的开放区间?

时间:2018-03-20 22:08:28

标签: r intervals

我经常处理实数的开放时间间隔,即我想排除边界,自然要避免1/0:1和这些人。

我通过写这个函数来帮助我,

oInt <- function(x, y, res=1) seq(x, y, res)[!seq(x, y, res) %in% c(x, y)]
x1 <- oInt(0, 1, .001)

> x1[c(1:2, length(x1)-1, length(x1))]
[1] 0.001 0.002 0.998 0.999

> sample(x1, 7, replace = TRUE)
[1] 0.703 0.404 0.698 0.287 0.753 0.679 0.354

但无论定义多小res=,它都会保持近似值。并且它会以这种方式使用相当多的字节来节省这些东西。

然后我遇到了sets包裹:

> (x2 <- sets::interval(0, 1, "open"))
(0, 1)

E.g。这不错:

f <- function(x) x*x
curve(f, unlist(x2))

但是,例如这不会:

> sample(unlist(x2), 7, replace=TRUE)
lc rc  l rc rc rc  l 
 0  0  0  0  0  0  0 

我忽略了(基础)R中的一个简洁的解决方案吗?也许我不是在找正确的地方,也不是用错误的词语搜索,但我什么都没发现。或者我只是再次访问wrong track 注意:为了匮乏,我排除了其他案例,例如:半开的间隔,但当然我也在处理那些。

0 个答案:

没有答案