我从krige()
、values
和variances
中获得了两个数组,它们都有几百万个条目。这两个数组长度相同,并且彼此匹配1:1。我想删除方差超过某个阈值的值。我实际上不需要在原处修改values
,生成第三个数组就可以了。
下面的代码工作正常:
for (i in 1:length(values)) {
if (variances[i] > 0.8) {
values[i] = NA
}
}
不幸的是,它非常慢,而且只使用一个处理器内核。我真的需要手动处理并行计算吗?这听起来很普通,所以它应该以某种方式内置,不仅使用多个内核,还可以使用一些矢量处理器指令。
请指点我。
1条答案
按热度按时间xpcnnkqh1#
只要这些数组匹配,就应该能够将一个数组与另一个数组进行子集化:
对于长度为1000万的数组,在我的笔记本电脑上大约需要一秒钟,数据生成包括:
创建于2023年1月18日,使用reprex v2.0.2