Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rounding dev #32

Open
muschellij2 opened this issue Jan 26, 2021 · 2 comments
Open

Rounding dev #32

muschellij2 opened this issue Jan 26, 2021 · 2 comments

Comments

@muschellij2
Copy link
Contributor

Dev should have rounded values like legacy to 3 digits.

library(AGread)
#> package 'AGread' was built under R version 4.0.0
file <- system.file(
  "extdata", "example.gt3x", package = "AGread"
)
y = read_gt3x(file, parser = "legacy")
x = read_gt3x(file, parser = "dev")
head(x$RAW - y$RAW)
#>   Timestamp Accelerometer_X Accelerometer_Y Accelerometer_Z
#> 1    0 secs      0.00009375      0.00018750     -0.00006250
#> 2    0 secs      0.00034375      0.00018750     -0.00015625
#> 3    0 secs      0.00015625      0.00028125     -0.00006250
#> 4    0 secs      0.00015625      0.00028125     -0.00006250
#> 5    0 secs      0.00006250      0.00018750     -0.00015625
#> 6    0 secs      0.00006250      0.00018750     -0.00015625
xyz = paste0("Accelerometer_", c("X", "Y", "Z"))

all(abs(x$RAW[, xyz] - y$RAW[, xyz]) < 1e-5)
#> [1] FALSE

round_away_zero = function (x, n = 0) {
  return(sign(x) * trunc(abs(x) * 10^n + 0.5)/10^n)
}
for (i in xyz) {
  x$RAW[, i] = round_away_zero(x$RAW[, i], 3)
}
all(abs(x$RAW[, xyz] - y$RAW[, xyz]) < 1e-5)
#> [1] TRUE

Created on 2021-01-26 by the reprex package (v0.3.0.9001)

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 4.0.2 (2020-06-22)
#>  os       macOS Catalina 10.15.7      
#>  system   x86_64, darwin17.0          
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_US.UTF-8                 
#>  ctype    en_US.UTF-8                 
#>  tz       America/New_York            
#>  date     2021-01-26                  
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version    date       lib source                           
#>  AGread      * 1.1.1.9000 2021-01-26 [1] local                            
#>  anytime       0.3.9      2020-08-27 [1] CRAN (R 4.0.2)                   
#>  assertthat    0.2.1      2019-03-21 [2] CRAN (R 4.0.0)                   
#>  backports     1.2.0      2020-11-02 [1] CRAN (R 4.0.2)                   
#>  binaryLogic   0.3.9      2017-12-13 [2] CRAN (R 4.0.0)                   
#>  cli           2.2.0      2020-11-20 [1] CRAN (R 4.0.2)                   
#>  colorspace    2.0-0      2020-11-11 [1] CRAN (R 4.0.2)                   
#>  crayon        1.3.4      2017-09-16 [2] CRAN (R 4.0.0)                   
#>  data.table    1.13.2     2020-10-19 [1] CRAN (R 4.0.2)                   
#>  digest        0.6.27     2020-10-24 [1] CRAN (R 4.0.2)                   
#>  dplyr         1.0.2      2020-08-18 [2] CRAN (R 4.0.2)                   
#>  ellipsis      0.3.1      2020-05-15 [2] CRAN (R 4.0.0)                   
#>  evaluate      0.14       2019-05-28 [2] CRAN (R 4.0.0)                   
#>  fansi         0.4.1      2020-01-08 [2] CRAN (R 4.0.0)                   
#>  fs            1.5.0      2020-07-31 [2] CRAN (R 4.0.2)                   
#>  generics      0.1.0      2020-10-31 [1] CRAN (R 4.0.2)                   
#>  ggplot2       3.3.2      2020-06-19 [2] CRAN (R 4.0.0)                   
#>  glue          1.4.2      2020-08-27 [1] CRAN (R 4.0.2)                   
#>  gtable        0.3.0      2019-03-25 [2] CRAN (R 4.0.0)                   
#>  highr         0.8        2019-03-20 [2] CRAN (R 4.0.0)                   
#>  htmltools     0.5.0      2020-06-16 [2] CRAN (R 4.0.0)                   
#>  knitr         1.30       2020-09-22 [1] CRAN (R 4.0.2)                   
#>  lifecycle     0.2.0      2020-03-06 [2] CRAN (R 4.0.0)                   
#>  lubridate     1.7.9      2020-06-08 [2] CRAN (R 4.0.0)                   
#>  magrittr      2.0.1      2020-11-17 [1] CRAN (R 4.0.2)                   
#>  munsell       0.5.0      2018-06-12 [2] CRAN (R 4.0.0)                   
#>  PAutilities   1.0.1      2020-08-06 [2] local                            
#>  pillar        1.4.7      2020-11-20 [1] CRAN (R 4.0.2)                   
#>  pkgconfig     2.0.3      2019-09-22 [2] CRAN (R 4.0.0)                   
#>  purrr         0.3.4      2020-04-17 [2] CRAN (R 4.0.0)                   
#>  R6            2.5.0      2020-10-28 [1] CRAN (R 4.0.2)                   
#>  Rcpp          1.0.5      2020-07-06 [1] CRAN (R 4.0.2)                   
#>  reprex        0.3.0.9001 2020-09-30 [1] Github (tidyverse/reprex@d3fc4b8)
#>  rlang         0.4.9.9000 2020-12-11 [1] Github (r-lib/rlang@1939a71)     
#>  rmarkdown     2.5        2020-10-21 [1] CRAN (R 4.0.2)                   
#>  rstudioapi    0.13       2020-11-12 [1] CRAN (R 4.0.2)                   
#>  scales        1.1.1      2020-05-11 [2] CRAN (R 4.0.0)                   
#>  sessioninfo   1.1.1      2018-11-05 [2] CRAN (R 4.0.0)                   
#>  stringi       1.5.3      2020-09-09 [1] CRAN (R 4.0.2)                   
#>  stringr       1.4.0      2019-02-10 [2] CRAN (R 4.0.0)                   
#>  styler        1.3.2      2020-02-23 [2] CRAN (R 4.0.0)                   
#>  tibble        3.0.4      2020-10-12 [1] CRAN (R 4.0.2)                   
#>  tidyselect    1.1.0      2020-05-11 [2] CRAN (R 4.0.0)                   
#>  vctrs         0.3.5      2020-11-17 [1] CRAN (R 4.0.2)                   
#>  withr         2.3.0      2020-09-22 [1] CRAN (R 4.0.2)                   
#>  xfun          0.19       2020-10-30 [1] CRAN (R 4.0.2)                   
#>  yaml          2.2.1      2020-02-01 [2] CRAN (R 4.0.0)                   
#> 
#> [1] /Users/johnmuschelli/Library/R/4.0/library
#> [2] /Library/Frameworks/R.framework/Versions/4.0/Resources/library
@paulhibbing
Copy link
Owner

This was a conscious omission in dev, mostly because the legacy approach to rounding seemed ridiculously inefficient (see mid_round below). My main reason for rounding was to ensure I could replicate output from ActiLife. With dev, I didn't see a lot of value in rounding things off (although I would be surprised if the devices are precise past 3 digits). I still check dev against legacy and ActiLife when troubleshooting issues, but I've become comfortable with making those comparisons with a defined tolerance of 0.0015 g (see also PAutilities::test_errors). Are there other considerations you recommend?

double mid_round(double input, int digits) {

@muschellij2
Copy link
Contributor Author

muschellij2 commented Jan 26, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants