
Calculate absorbance means with optional outlier removal
Source:R/qp_calc_abs_mean.R
qp_calc_abs_mean.Rd
Calculate absorbance means with optional outlier removal
Usage
qp_calc_abs_mean(x, ignore_outliers = c("all", "standards", "samples", "none"))
# S3 method for class 'data.frame'
qp_calc_abs_mean(x, ignore_outliers = c("all", "standards", "samples", "none"))
# S3 method for class 'list'
qp_calc_abs_mean(x, ignore_outliers = c("all", "standards", "samples", "none"))
Details
Input data.frame
must contain the following columns:
sample_type
. Character. Must contain values either "standard" or "unknown"index
. Numeric. Denotes sample number..abs
. Numeric. Contains absorbance values.If a boolean
.is_outlier
is supplied, that will be used instead.
Examples
library(dplyr)
#>
#> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’:
#>
#> filter, lag
#> The following objects are masked from ‘package:base’:
#>
#> intersect, setdiff, setequal, union
abs <- expand.grid(
sample_type = c("standard", "unknown"),
index = 1:7,
rep = 1:3
) |>
dplyr::arrange(sample_type, index, rep)
abs$.abs <- abs(rnorm(nrow(abs), mean = abs$index))
# Selecting different subsets for outlier removal
qp_calc_abs_mean(abs, "none")
#> sample_type index rep .abs .is_outlier .mean
#> 1 standard 1 1 0.8218177 NA 0.7767643
#> 2 standard 1 2 0.7526747 NA 0.7767643
#> 3 standard 1 3 0.7558004 NA 0.7767643
#> 4 standard 2 1 1.7172946 NA 1.9308591
#> 5 standard 2 2 1.4463006 NA 1.9308591
#> 6 standard 2 3 2.6289820 NA 1.9308591
#> 7 standard 3 1 5.0650249 NA 3.3154875
#> 8 standard 3 2 1.3690106 NA 3.3154875
#> 9 standard 3 3 3.5124269 NA 3.3154875
#> 10 standard 4 1 2.1369885 NA 3.1874580
#> 11 standard 4 2 3.4779875 NA 3.1874580
#> 12 standard 4 3 3.9473981 NA 3.1874580
#> 13 standard 5 1 5.5429963 NA 5.0323586
#> 14 standard 5 2 4.0859252 NA 5.0323586
#> 15 standard 5 3 5.4681544 NA 5.0323586
#> 16 standard 6 1 6.3629513 NA 5.9320613
#> 17 standard 6 2 4.6954565 NA 5.9320613
#> 18 standard 6 3 6.7377763 NA 5.9320613
#> 19 standard 7 1 8.8885049 NA 7.2850708
#> 20 standard 7 2 6.9025549 NA 7.2850708
#> 21 standard 7 3 6.0641526 NA 7.2850708
#> 22 unknown 1 1 0.9840497 NA 0.5565535
#> 23 unknown 1 2 0.1732110 NA 0.5565535
#> 24 unknown 1 3 0.5123997 NA 0.5565535
#> 25 unknown 2 1 2.9353632 NA 2.4518458
#> 26 unknown 2 2 2.1764886 NA 2.4518458
#> 27 unknown 2 3 2.2436855 NA 2.4518458
#> 28 unknown 3 1 4.6235489 NA 3.5338633
#> 29 unknown 3 2 3.1120381 NA 3.5338633
#> 30 unknown 3 3 2.8660030 NA 3.5338633
#> 31 unknown 4 1 2.0899125 NA 3.1657431
#> 32 unknown 4 2 3.7207628 NA 3.1657431
#> 33 unknown 4 3 3.6865540 NA 3.1657431
#> 34 unknown 5 1 6.0673079 NA 5.1660731
#> 35 unknown 5 2 5.0700349 NA 5.1660731
#> 36 unknown 5 3 4.3608767 NA 5.1660731
#> 37 unknown 6 1 5.9500351 NA 6.0477829
#> 38 unknown 6 2 5.7485166 NA 6.0477829
#> 39 unknown 6 3 6.4447971 NA 6.0477829
#> 40 unknown 7 1 9.7554176 NA 8.1265527
#> 41 unknown 7 2 7.0465314 NA 8.1265527
#> 42 unknown 7 3 7.5777091 NA 8.1265527
qp_calc_abs_mean(abs, "standards")
#> sample_type index rep .abs .is_outlier .mean
#> 1 standard 1 1 0.8218177 TRUE 0.7542375
#> 2 standard 1 2 0.7526747 FALSE 0.7542375
#> 3 standard 1 3 0.7558004 FALSE 0.7542375
#> 4 standard 2 1 1.7172946 FALSE 1.5817976
#> 5 standard 2 2 1.4463006 FALSE 1.5817976
#> 6 standard 2 3 2.6289820 TRUE 1.5817976
#> 7 standard 3 1 5.0650249 FALSE 3.3154875
#> 8 standard 3 2 1.3690106 FALSE 3.3154875
#> 9 standard 3 3 3.5124269 FALSE 3.3154875
#> 10 standard 4 1 2.1369885 TRUE 3.7126928
#> 11 standard 4 2 3.4779875 FALSE 3.7126928
#> 12 standard 4 3 3.9473981 FALSE 3.7126928
#> 13 standard 5 1 5.5429963 FALSE 5.5055754
#> 14 standard 5 2 4.0859252 TRUE 5.5055754
#> 15 standard 5 3 5.4681544 FALSE 5.5055754
#> 16 standard 6 1 6.3629513 FALSE 6.5503638
#> 17 standard 6 2 4.6954565 TRUE 6.5503638
#> 18 standard 6 3 6.7377763 FALSE 6.5503638
#> 19 standard 7 1 8.8885049 TRUE 6.4833538
#> 20 standard 7 2 6.9025549 FALSE 6.4833538
#> 21 standard 7 3 6.0641526 FALSE 6.4833538
#> 22 unknown 1 1 0.9840497 NA 0.5565535
#> 23 unknown 1 2 0.1732110 NA 0.5565535
#> 24 unknown 1 3 0.5123997 NA 0.5565535
#> 25 unknown 2 1 2.9353632 NA 2.4518458
#> 26 unknown 2 2 2.1764886 NA 2.4518458
#> 27 unknown 2 3 2.2436855 NA 2.4518458
#> 28 unknown 3 1 4.6235489 NA 3.5338633
#> 29 unknown 3 2 3.1120381 NA 3.5338633
#> 30 unknown 3 3 2.8660030 NA 3.5338633
#> 31 unknown 4 1 2.0899125 NA 3.1657431
#> 32 unknown 4 2 3.7207628 NA 3.1657431
#> 33 unknown 4 3 3.6865540 NA 3.1657431
#> 34 unknown 5 1 6.0673079 NA 5.1660731
#> 35 unknown 5 2 5.0700349 NA 5.1660731
#> 36 unknown 5 3 4.3608767 NA 5.1660731
#> 37 unknown 6 1 5.9500351 NA 6.0477829
#> 38 unknown 6 2 5.7485166 NA 6.0477829
#> 39 unknown 6 3 6.4447971 NA 6.0477829
#> 40 unknown 7 1 9.7554176 NA 8.1265527
#> 41 unknown 7 2 7.0465314 NA 8.1265527
#> 42 unknown 7 3 7.5777091 NA 8.1265527
qp_calc_abs_mean(abs, "samples")
#> sample_type index rep .abs .is_outlier .mean
#> 1 standard 1 1 0.8218177 NA 0.7767643
#> 2 standard 1 2 0.7526747 NA 0.7767643
#> 3 standard 1 3 0.7558004 NA 0.7767643
#> 4 standard 2 1 1.7172946 NA 1.9308591
#> 5 standard 2 2 1.4463006 NA 1.9308591
#> 6 standard 2 3 2.6289820 NA 1.9308591
#> 7 standard 3 1 5.0650249 NA 3.3154875
#> 8 standard 3 2 1.3690106 NA 3.3154875
#> 9 standard 3 3 3.5124269 NA 3.3154875
#> 10 standard 4 1 2.1369885 NA 3.1874580
#> 11 standard 4 2 3.4779875 NA 3.1874580
#> 12 standard 4 3 3.9473981 NA 3.1874580
#> 13 standard 5 1 5.5429963 NA 5.0323586
#> 14 standard 5 2 4.0859252 NA 5.0323586
#> 15 standard 5 3 5.4681544 NA 5.0323586
#> 16 standard 6 1 6.3629513 NA 5.9320613
#> 17 standard 6 2 4.6954565 NA 5.9320613
#> 18 standard 6 3 6.7377763 NA 5.9320613
#> 19 standard 7 1 8.8885049 NA 7.2850708
#> 20 standard 7 2 6.9025549 NA 7.2850708
#> 21 standard 7 3 6.0641526 NA 7.2850708
#> 22 unknown 1 1 0.9840497 FALSE 0.5565535
#> 23 unknown 1 2 0.1732110 FALSE 0.5565535
#> 24 unknown 1 3 0.5123997 FALSE 0.5565535
#> 25 unknown 2 1 2.9353632 TRUE 2.2100870
#> 26 unknown 2 2 2.1764886 FALSE 2.2100870
#> 27 unknown 2 3 2.2436855 FALSE 2.2100870
#> 28 unknown 3 1 4.6235489 TRUE 2.9890205
#> 29 unknown 3 2 3.1120381 FALSE 2.9890205
#> 30 unknown 3 3 2.8660030 FALSE 2.9890205
#> 31 unknown 4 1 2.0899125 TRUE 3.7036584
#> 32 unknown 4 2 3.7207628 FALSE 3.7036584
#> 33 unknown 4 3 3.6865540 FALSE 3.7036584
#> 34 unknown 5 1 6.0673079 FALSE 5.1660731
#> 35 unknown 5 2 5.0700349 FALSE 5.1660731
#> 36 unknown 5 3 4.3608767 FALSE 5.1660731
#> 37 unknown 6 1 5.9500351 FALSE 5.8492758
#> 38 unknown 6 2 5.7485166 FALSE 5.8492758
#> 39 unknown 6 3 6.4447971 TRUE 5.8492758
#> 40 unknown 7 1 9.7554176 TRUE 7.3121202
#> 41 unknown 7 2 7.0465314 FALSE 7.3121202
#> 42 unknown 7 3 7.5777091 FALSE 7.3121202
qp_calc_abs_mean(abs, "all")
#> sample_type index rep .abs .is_outlier .mean
#> 1 standard 1 1 0.8218177 TRUE 0.7542375
#> 2 standard 1 2 0.7526747 FALSE 0.7542375
#> 3 standard 1 3 0.7558004 FALSE 0.7542375
#> 4 standard 2 1 1.7172946 FALSE 1.5817976
#> 5 standard 2 2 1.4463006 FALSE 1.5817976
#> 6 standard 2 3 2.6289820 TRUE 1.5817976
#> 7 standard 3 1 5.0650249 FALSE 3.3154875
#> 8 standard 3 2 1.3690106 FALSE 3.3154875
#> 9 standard 3 3 3.5124269 FALSE 3.3154875
#> 10 standard 4 1 2.1369885 TRUE 3.7126928
#> 11 standard 4 2 3.4779875 FALSE 3.7126928
#> 12 standard 4 3 3.9473981 FALSE 3.7126928
#> 13 standard 5 1 5.5429963 FALSE 5.5055754
#> 14 standard 5 2 4.0859252 TRUE 5.5055754
#> 15 standard 5 3 5.4681544 FALSE 5.5055754
#> 16 standard 6 1 6.3629513 FALSE 6.5503638
#> 17 standard 6 2 4.6954565 TRUE 6.5503638
#> 18 standard 6 3 6.7377763 FALSE 6.5503638
#> 19 standard 7 1 8.8885049 TRUE 6.4833538
#> 20 standard 7 2 6.9025549 FALSE 6.4833538
#> 21 standard 7 3 6.0641526 FALSE 6.4833538
#> 22 unknown 1 1 0.9840497 FALSE 0.5565535
#> 23 unknown 1 2 0.1732110 FALSE 0.5565535
#> 24 unknown 1 3 0.5123997 FALSE 0.5565535
#> 25 unknown 2 1 2.9353632 TRUE 2.2100870
#> 26 unknown 2 2 2.1764886 FALSE 2.2100870
#> 27 unknown 2 3 2.2436855 FALSE 2.2100870
#> 28 unknown 3 1 4.6235489 TRUE 2.9890205
#> 29 unknown 3 2 3.1120381 FALSE 2.9890205
#> 30 unknown 3 3 2.8660030 FALSE 2.9890205
#> 31 unknown 4 1 2.0899125 TRUE 3.7036584
#> 32 unknown 4 2 3.7207628 FALSE 3.7036584
#> 33 unknown 4 3 3.6865540 FALSE 3.7036584
#> 34 unknown 5 1 6.0673079 FALSE 5.1660731
#> 35 unknown 5 2 5.0700349 FALSE 5.1660731
#> 36 unknown 5 3 4.3608767 FALSE 5.1660731
#> 37 unknown 6 1 5.9500351 FALSE 5.8492758
#> 38 unknown 6 2 5.7485166 FALSE 5.8492758
#> 39 unknown 6 3 6.4447971 TRUE 5.8492758
#> 40 unknown 7 1 9.7554176 TRUE 7.3121202
#> 41 unknown 7 2 7.0465314 FALSE 7.3121202
#> 42 unknown 7 3 7.5777091 FALSE 7.3121202
# If an `.is_outlier` column is provided, that will be used instead:
abs$.is_outlier <- rep(c(TRUE, FALSE), length.out = nrow(abs))
qp_calc_abs_mean(abs)
#> Data has `.is_outlier` column, using that
#> sample_type index rep .abs .is_outlier .mean
#> 1 standard 1 1 0.8218177 TRUE 0.7526747
#> 2 standard 1 2 0.7526747 FALSE 0.7526747
#> 3 standard 1 3 0.7558004 TRUE 0.7526747
#> 4 standard 2 1 1.7172946 FALSE 2.1731383
#> 5 standard 2 2 1.4463006 TRUE 2.1731383
#> 6 standard 2 3 2.6289820 FALSE 2.1731383
#> 7 standard 3 1 5.0650249 TRUE 1.3690106
#> 8 standard 3 2 1.3690106 FALSE 1.3690106
#> 9 standard 3 3 3.5124269 TRUE 1.3690106
#> 10 standard 4 1 2.1369885 FALSE 3.0421933
#> 11 standard 4 2 3.4779875 TRUE 3.0421933
#> 12 standard 4 3 3.9473981 FALSE 3.0421933
#> 13 standard 5 1 5.5429963 TRUE 4.0859252
#> 14 standard 5 2 4.0859252 FALSE 4.0859252
#> 15 standard 5 3 5.4681544 TRUE 4.0859252
#> 16 standard 6 1 6.3629513 FALSE 6.5503638
#> 17 standard 6 2 4.6954565 TRUE 6.5503638
#> 18 standard 6 3 6.7377763 FALSE 6.5503638
#> 19 standard 7 1 8.8885049 TRUE 6.9025549
#> 20 standard 7 2 6.9025549 FALSE 6.9025549
#> 21 standard 7 3 6.0641526 TRUE 6.9025549
#> 22 unknown 1 1 0.9840497 FALSE 0.7482247
#> 23 unknown 1 2 0.1732110 TRUE 0.7482247
#> 24 unknown 1 3 0.5123997 FALSE 0.7482247
#> 25 unknown 2 1 2.9353632 TRUE 2.1764886
#> 26 unknown 2 2 2.1764886 FALSE 2.1764886
#> 27 unknown 2 3 2.2436855 TRUE 2.1764886
#> 28 unknown 3 1 4.6235489 FALSE 3.7447759
#> 29 unknown 3 2 3.1120381 TRUE 3.7447759
#> 30 unknown 3 3 2.8660030 FALSE 3.7447759
#> 31 unknown 4 1 2.0899125 TRUE 3.7207628
#> 32 unknown 4 2 3.7207628 FALSE 3.7207628
#> 33 unknown 4 3 3.6865540 TRUE 3.7207628
#> 34 unknown 5 1 6.0673079 FALSE 5.2140923
#> 35 unknown 5 2 5.0700349 TRUE 5.2140923
#> 36 unknown 5 3 4.3608767 FALSE 5.2140923
#> 37 unknown 6 1 5.9500351 TRUE 5.7485166
#> 38 unknown 6 2 5.7485166 FALSE 5.7485166
#> 39 unknown 6 3 6.4447971 TRUE 5.7485166
#> 40 unknown 7 1 9.7554176 FALSE 8.6665633
#> 41 unknown 7 2 7.0465314 TRUE 8.6665633
#> 42 unknown 7 3 7.5777091 FALSE 8.6665633