r - 最快的 R 实现

标签 r optimization operators

我使用"%within[]%" <- function(x,y){x>=y[1] & x<=y[2]} (意味着 x 在紧凑集 y 中)在 R 代码中很多,但我很确定它非常慢。你有更快的事吗?它需要适用于 > 的所有内容。已定义。

编辑:x可以是一个向量并且 y按升序排列的 2 个元素向量...

EDIT2:奇怪的是没有人(据我所知)编写了一个包 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

这可能是 Rcpp 的工作。

关于r - 最快的 R 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15002679/

相关文章:

r - 将逗号类分配给数据框中的多个列

arrays - 为什么连续迭代结构数组比类数组快得多?

git - 你应该删除未使用的 git 分支吗?

r - geom_dotplot 填充美学变化数据分组

r - 在 R 中更改主目录

r - 如何绘制具有置信区间的数据?

javascript - 使用闭包编译器编写更好的面向对象 JavaScript 完整示例代码

c# - C# 值类型的直接比较

php - 3个不同的等于

swift - 是否可以重载 "?"运算符?