通过用其均值或中值替换每个箱子来去除 R 中具有等深度箱子的噪声

removing noises with equal depth binning in R by replacing each bins with its mean or median

例如我有这样一个向量:

a <- c(4, 8, 9, 15, 21, 21, 24, 25, 26, 28, 29, 34)

我想这样做:

第 1 步:

划分为等频(等深度)

垃圾箱:

第 2 步:

按 bin 平滑:

输出:

9,9,9,9,23,23,23,23,29,29,29,29

我们可以通过将 alength 分成相等数量的 bin 来创建组,并使用 ave 计算每个组中的四舍五入 mean

no_of_bins <- 4
round(ave(a, rep(1:length(a), each = no_of_bins, length.out = length(a))))
#[1]  9  9  9  9 23 23 23 23 29 29 29 29

PS -

  • ave 具有与 mean 相同的默认功能,因此尚未明确应用。

试试这个(将 Orange$age 预定义的 R 变量作为输入,10 是 bin 大小)

v=split(Orange$age, ceiling(seq_along(Orange$age)/10))
lapply(v, function(item){rep(mean(item), length(item))})