set.seed(2026-05-18)
x <- rnorm(10, mean = 100, sd = 50)
r_mean <- mean(x)
r_sum_len <- sum(x) / length(x)
r_rowMean <- rowMeans(matrix(x, nrow = 1))
r_mean - r_sum_len
#> [1] -1.421085e-14
r_rowMean - r_sum_len
#> [1] 0
r_mean - r_rowMean
#> [1] -1.421085e-14
set.seed(2026-05-18)
m <- matrix(rnorm(5 * 10, mean = 100, sd = 50), nrow = 10, ncol = 5)
m
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 170.85870 43.74890 113.96289 116.35102 100.90945
#> [2,] 63.59024 53.76279 58.34088 150.28400 40.72112
#> [3,] 86.66491 84.65297 221.07509 141.38082 35.31416
#> [4,] 153.67691 143.86892 65.48070 136.30960 130.82240
#> [5,] 136.14942 135.91736 76.73630 154.20413 141.18348
#> [6,] 34.84147 44.23442 99.50810 32.53873 103.94052
#> [7,] 138.09817 27.04902 109.13887 141.58426 158.49895
#> [8,] 165.78619 117.81007 146.65170 174.57560 101.84610
#> [9,] 108.08085 109.55879 113.27596 82.04280 155.52896
#> [10,] 126.90754 83.35347 46.65164 107.87742 29.41182
via_mean <- apply(m, 1, mean)
via_rowMean <- rowMeans(m)
via_sum_n <- apply(m, 1, function(r) sum(r) / length(r))
via_mean - via_rowMean
#> [1] -1.421085e-14 0.000000e+00 0.000000e+00 1.421085e-14 0.000000e+00
#> [6] 7.105427e-15 1.421085e-14 0.000000e+00 1.421085e-14 1.421085e-14
via_mean - via_sum_n
#> [1] -1.421085e-14 0.000000e+00 0.000000e+00 1.421085e-14 0.000000e+00
#> [6] 7.105427e-15 1.421085e-14 0.000000e+00 1.421085e-14 1.421085e-14
via_rowMean - via_sum_n
#> [1] 0 0 0 0 0 0 0 0 0 0Created on 2026-05-18 with reprex v2.1.1
Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.6.0 (2026-04-24)
#> os macOS Tahoe 26.3.1
#> system aarch64, darwin23
#> ui X11
#> language (EN)
#> collate en_US.UTF-8
#> ctype en_US.UTF-8
#> tz Australia/Hobart
#> date 2026-05-18
#> pandoc 3.8.3 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/aarch64/ (via rmarkdown)
#> quarto 1.9.36 @ /usr/local/bin/quarto
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> cli 3.6.6 2026-04-09 [1] CRAN (R 4.6.0)
#> digest 0.6.39 2025-11-19 [1] CRAN (R 4.6.0)
#> evaluate 1.0.5 2025-08-27 [1] CRAN (R 4.6.0)
#> fastmap 1.2.0 2024-05-15 [1] CRAN (R 4.6.0)
#> fs 2.1.0 2026-04-18 [1] CRAN (R 4.6.0)
#> glue 1.8.1 2026-04-17 [1] CRAN (R 4.6.0)
#> htmltools 0.5.9 2025-12-04 [1] CRAN (R 4.6.0)
#> knitr 1.51 2025-12-20 [1] CRAN (R 4.6.0)
#> lifecycle 1.0.5 2026-01-08 [1] CRAN (R 4.6.0)
#> otel 0.2.0 2025-08-29 [1] CRAN (R 4.6.0)
#> reprex 2.1.1 2024-07-06 [1] CRAN (R 4.6.0)
#> rlang 1.2.0 2026-04-06 [1] CRAN (R 4.6.0)
#> rmarkdown 2.31 2026-03-26 [1] CRAN (R 4.6.0)
#> rstudioapi 0.18.0 2026-01-16 [1] CRAN (R 4.6.0)
#> sessioninfo 1.2.3 2025-02-05 [1] CRAN (R 4.6.0)
#> withr 3.0.2 2024-10-28 [1] CRAN (R 4.6.0)
#> xfun 0.57 2026-03-20 [1] CRAN (R 4.6.0)
#> yaml 2.3.12 2025-12-10 [1] CRAN (R 4.6.0)
#>
#> [1] /Library/Frameworks/R.framework/Versions/4.6/Resources/library
#>
#> ──────────────────────────────────────────────────────────────────────────────
https://xkcd.com/3228/