替换大数据中的异常值

奥古斯托·卡里略·法拉利

我有12个列和600000行的大数据,我想用此函数替换离群值

 replace_outliers <- function(x, na.rm = TRUE, ...) {
    qnt <- quantile(x, probs=c(.25,.50 ,.75), na.rm = na.rm, ...)
    H <- 1.5 * IQR(x, na.rm = na.rm)
    y <- x
    y[x > (qnt[3] + H)] <-  qnt[2]
    y
 }

但是如果使用for循环,则将花费大量时间,如果没有更好的硬件或群集,我可以更快地这样做吗?

csgillespie

有几种优化功能的方法,但是正如您所提出的那样,操作并不算慢。

总之,而不诉诸data.tabledplyr或并行编程,我们仍然可以通过简单地重写你的函数来获得适度的速度增加

replace_outliers2 = function(x, na.rm = TRUE, ...) {
  qnt = quantile(x, probs=c(.25,.50 ,.75), na.rm = na.rm, ...)
  x[x > (2.5*qnt[3]- 1.5*qnt[1])] = qnt[2]
  x
}

一些快速的时间:

R> x = matrix(rlnorm(600000*12), ncol=12)
R> system.time({for(i in 1:12) replace_outliers(x[,i])})
   user  system elapsed 
  1.448   0.008   1.469 
R> system.time({ for(i in 1:12) replace_outliers2(x[,i])})
   user  system elapsed 
  0.860   0.004   0.869 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用R替换包含NA的数据框中多个列的异常值

来自分类Dev

Python从数据中删除异常值

来自分类Dev

从训练数据中删除异常值

来自分类Dev

从正弦数据中查找异常值

来自分类Dev

从变量分组的数据框中搜索并删除异常值

来自分类Dev

从熊猫数据框中删除已知的异常值

来自分类Dev

R 删除按因子分组的数据框中的异常值

来自分类Dev

在VBA中用零替换异常值

来自分类Dev

在组中查找“异常值”

来自分类Dev

Python中的异常值校正

来自分类Dev

在SQL中查找异常值

来自分类Dev

从 DataFrame 中过滤异常值

来自分类Dev

移除异常值(+/- 3 std)并在Python / pandas中替换为np.nan

来自分类Dev

在Apache Spark中查找异常值并替换为平均值

来自分类Dev

如何使用IQR中的值替换多个变量和个体的异常值

来自分类Dev

如何用最接近的值替换异常值,如Matlab中的filloutlier函数?

来自分类Dev

移除异常值(+/- 3 std)并在Python / pandas中替换为np.nan

来自分类Dev

在Apache Spark中查找异常值并替换为平均值

来自分类Dev

用R中的第二个最小值组替换异常值

来自分类Dev

使用熊猫替换基于不同条件的多列中的异常值?

来自分类Dev

从SAS数据集中删除异常值

来自分类Dev

如何在R中替换大数据框中的字符

来自分类Dev

根据列变量或数据框中的多索引删除异常值

来自分类Dev

修改由时序数据中的传感器故障引起的异常值

来自分类Dev

在保留数据帧中的时间戳的同时删除异常值

来自分类Dev

尝试使用R删除大型数据库中的潜在异常值。

来自分类Dev

通过因子水平和列识别 R 数据中的异常值

来自分类Dev

从PCL样本共识中获得异常值

来自分类Dev

Javascript:从数组中删除异常值?

Related 相关文章

热门标签

归档