Statistical Summaries
Weighted Mean
Unequal Importance
weighted.mean averages values while giving some positions more influence than others.
Program
Play the script to change the final value's weight and watch the average move.
weighted_mean.R
Replay: real traced execution (multi-file project)
values <- c(10, 20, 30)
weight_last <- 2
weights <- c(1, 1, weight_last)
average <- weighted.mean(values, weights)
cat(average, "\n", sep = "")
values <- c(10, 20, 30)
weight_last <- 3
weights <- c(1, 1, weight_last)
average <- weighted.mean(values, weights)
cat(average, "\n", sep = "")
values <- c(10, 20, 30)
weight_last <- 4
weights <- c(1, 1, weight_last)
average <- weighted.mean(values, weights)
cat(average, "\n", sep = "")
values ← 10, 20, 30
1values <- c(10, 20, 30)2weight_last <- 2values this step10, 20, 30valuesweight_last ← 2
1values <- c(10, 20, 30)2weight_last <- 23weights <- c(1, 1, weight_last)values this step2weight_lastweights ← 1, 1, 2
2weight_last <- 23weights <- c(1, 1, weight_last)4average <- weighted.mean(values, weights)values this step1, 1, 2weights2weight_lastaverage ← 22.5
3weights <- c(1, 1, weight_last)4average <- weighted.mean(values, weights)5cat(average, "\n", sep = "")values this step22.5average10, 20, 30values1, 1, 2weightscat(average, " ", sep = "")
4average <- weighted.mean(values, weights)5cat(average, "\n", sep = "")output22.5values this step22.5average
values ← 10, 20, 30
1values <- c(10, 20, 30)2weight_last <- 3values this step10, 20, 30valuesweight_last ← 3
1values <- c(10, 20, 30)2weight_last <- 33weights <- c(1, 1, weight_last)values this step3weight_lastweights ← 1, 1, 3
2weight_last <- 33weights <- c(1, 1, weight_last)4average <- weighted.mean(values, weights)values this step1, 1, 3weights3weight_lastaverage ← 24
3weights <- c(1, 1, weight_last)4average <- weighted.mean(values, weights)5cat(average, "\n", sep = "")values this step24average10, 20, 30values1, 1, 3weightscat(average, " ", sep = "")
4average <- weighted.mean(values, weights)5cat(average, "\n", sep = "")output24values this step24average
values ← 10, 20, 30
1values <- c(10, 20, 30)2weight_last <- 4values this step10, 20, 30valuesweight_last ← 4
1values <- c(10, 20, 30)2weight_last <- 43weights <- c(1, 1, weight_last)values this step4weight_lastweights ← 1, 1, 4
2weight_last <- 43weights <- c(1, 1, weight_last)4average <- weighted.mean(values, weights)values this step1, 1, 4weights4weight_lastaverage ← 25
3weights <- c(1, 1, weight_last)4average <- weighted.mean(values, weights)5cat(average, "\n", sep = "")values this step25average10, 20, 30values1, 1, 4weightscat(average, " ", sep = "")
4average <- weighted.mean(values, weights)5cat(average, "\n", sep = "")output25values this step25average
weighted.mean
`weighted.mean(values, weights)` scales each value by its weight.
weights
A larger weight gives one value more pull on the average.
numeric output
`cat` writes the numeric result without R's vector label.