通过用其均值或中值替换每个箱子来去除 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 步:
划分为等频(等深度)
垃圾箱:
容器 1:4、8、9、15
二进制 2:21、21、24、25
第 3 格:26、28、29、34
第 2 步:
按 bin 平滑:
容器 1:9、9、9、9
二进制 2:23、23、23、23
第 3 格:29、29、29、29
输出:
9,9,9,9,23,23,23,23,29,29,29,29
我们可以通过将 a
的 length
分成相等数量的 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))})
例如我有这样一个向量:
a <- c(4, 8, 9, 15, 21, 21, 24, 25, 26, 28, 29, 34)
我想这样做:
第 1 步:
划分为等频(等深度)
垃圾箱:
容器 1:4、8、9、15
二进制 2:21、21、24、25
第 3 格:26、28、29、34
第 2 步:
按 bin 平滑:
容器 1:9、9、9、9
二进制 2:23、23、23、23
第 3 格:29、29、29、29
输出:
9,9,9,9,23,23,23,23,29,29,29,29
我们可以通过将 a
的 length
分成相等数量的 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))})