通过用平均值或中值替换每个箱子来消除R中具有相同深度装箱的噪音

问题描述 投票:0回答:2

例如,我有一个这样的矢量:

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
r noise smoothing
2个回答
3
投票

我们可以通过将lengtha除以相同数量的箱子来创建组,并使用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的默认功能,因此尚未明确应用。

1
投票

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

v=split(Orange$age, ceiling(seq_along(Orange$age)/10))
lapply(v, function(item){rep(mean(item), length(item))})
© www.soinside.com 2019 - 2024. All rights reserved.