sta*_*ant 3 optimization r operators
我在R代码中使用"%within[]%" <- function(x,y){x>=y[1] & x<=y[2]}(意思x是在紧凑集中y)很多,但我很确定它非常慢.你有更快的东西吗?它需要适用于>定义的所有内容.
编辑:x可能是一个向量和y2元素向量按升序排列...
编辑2:奇怪的是没有人(据我所知)写了一个rOperator实现快速C操作符的包%w/i[]%, %w/i[[%, ...
编辑3:我意识到我的问题太笼统,因为假设x,y会修改任何结果,我认为我们应该关闭它,感谢您的输入.
"%within[]%" <- function(x,y){x>=y[1] & x<=y[2]}
x <- 1:10
y <- c(3,5)
x %within[]% y
"%within[]2%" <- function(x,y) findInterval(x,y,rightmost.closed=TRUE)==1
x %within[]2% y
library(microbenchmark)
microbenchmark(x %within[]% y,x %within[]2% y)
Unit: microseconds
expr min lq median uq max
1 x %within[]% y 1.849 2.465 2.6185 2.773 11.395
2 x %within[]2% y 4.928 5.544 5.8520 6.160 37.265
x <- 1:1e6
microbenchmark(x %within[]% y,x %within[]2% y)
Unit: milliseconds
expr min lq median uq max
1 x %within[]% y 27.81535 29.60647 31.25193 56.68517 88.16961
2 x %within[]2% y 20.75496 23.07100 24.37369 43.15691 69.62122
Run Code Online (Sandbox Code Playgroud)
这可能是Rcpp的工作.
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |