Commit 1f2b1b8e9a29717a4ed87c2242513b8227b14c00
0 parents
Exists in
master
First commit
Showing
9 changed files
with
232 additions
and
0 deletions
Show diff stats
| 1 | +++ a/.Rhistory | ||
| @@ -0,0 +1,16 @@ | @@ -0,0 +1,16 @@ | ||
| 1 | +devtools::check() | ||
| 2 | +devtools::use_package() | ||
| 3 | +roxygen2::roxygenise() | ||
| 4 | +roxygen2::roxygenise() | ||
| 5 | +usethis::use_package("dplyr") | ||
| 6 | +usethis::use_package("feather") | ||
| 7 | +usethis::use_package("tibble") | ||
| 8 | +usethis::use_package("purrr") | ||
| 9 | +usethis::use_package("stringr") | ||
| 10 | +devtools::check() | ||
| 11 | +devtools::check() | ||
| 12 | +devtools::check() | ||
| 13 | +devtools::check() | ||
| 14 | +devtools::check() | ||
| 15 | +devtools::build() | ||
| 16 | +devtools::install() |
| 1 | +++ a/DESCRIPTION | ||
| @@ -0,0 +1,22 @@ | @@ -0,0 +1,22 @@ | ||
| 1 | +Package: ExperimentsPackage | ||
| 2 | +Title: Useful functions for data analysis of UZ experiments. | ||
| 3 | +Version: 0.0.0.9000 | ||
| 4 | +Authors@R: | ||
| 5 | + person(given = "Karol", | ||
| 6 | + family = "Niewiadomski", | ||
| 7 | + role = c("aut", "cre"), | ||
| 8 | + email = "karol.niewiadomski@nottingham.ac.uk", | ||
| 9 | + comment = c(ORCID = "YOUR-ORCID-ID")) | ||
| 10 | +Description: This package collects useful functions for the data analysis of experiments prepared at University of Zielona Góra. | ||
| 11 | +License: `use_mit_license()`, `use_gpl3_license()` or friends to | ||
| 12 | + pick a license | ||
| 13 | +Encoding: UTF-8 | ||
| 14 | +LazyData: true | ||
| 15 | +Roxygen: list(markdown = TRUE) | ||
| 16 | +RoxygenNote: 7.1.0 | ||
| 17 | +Imports: | ||
| 18 | + dplyr, | ||
| 19 | + feather, | ||
| 20 | + tibble, | ||
| 21 | + purrr, | ||
| 22 | + stringr |
| 1 | +++ a/ExperimentsPackage.Rproj | ||
| @@ -0,0 +1,21 @@ | @@ -0,0 +1,21 @@ | ||
| 1 | +Version: 1.0 | ||
| 2 | + | ||
| 3 | +RestoreWorkspace: No | ||
| 4 | +SaveWorkspace: No | ||
| 5 | +AlwaysSaveHistory: Default | ||
| 6 | + | ||
| 7 | +EnableCodeIndexing: Yes | ||
| 8 | +UseSpacesForTab: Yes | ||
| 9 | +NumSpacesForTab: 2 | ||
| 10 | +Encoding: UTF-8 | ||
| 11 | + | ||
| 12 | +RnwWeave: Sweave | ||
| 13 | +LaTeX: pdfLaTeX | ||
| 14 | + | ||
| 15 | +AutoAppendNewline: Yes | ||
| 16 | +StripTrailingWhitespace: Yes | ||
| 17 | + | ||
| 18 | +BuildType: Package | ||
| 19 | +PackageUseDevtools: Yes | ||
| 20 | +PackageInstallArgs: --no-multiarch --with-keep.source | ||
| 21 | +PackageRoxygenize: rd,collate,namespace |
| 1 | +++ a/NAMESPACE | ||
| @@ -0,0 +1,14 @@ | @@ -0,0 +1,14 @@ | ||
| 1 | +# Generated by roxygen2: do not edit by hand | ||
| 2 | + | ||
| 3 | +export(SWITCHING_FREQUENCY) | ||
| 4 | +export(SWITCHING_PERIOD) | ||
| 5 | +export(read_interference) | ||
| 6 | +export(read_no_interference) | ||
| 7 | +importFrom(dplyr,between) | ||
| 8 | +importFrom(dplyr,bind_rows) | ||
| 9 | +importFrom(dplyr,filter) | ||
| 10 | +importFrom(dplyr,mutate) | ||
| 11 | +importFrom(feather,read_feather) | ||
| 12 | +importFrom(purrr,map_chr) | ||
| 13 | +importFrom(stringr,str_interp) | ||
| 14 | +importFrom(tibble,tibble) |
| 1 | +++ a/R/reading_funs.R | ||
| @@ -0,0 +1,99 @@ | @@ -0,0 +1,99 @@ | ||
| 1 | + | ||
| 2 | +#' @export | ||
| 3 | +SWITCHING_FREQUENCY <- 10e3 | ||
| 4 | + | ||
| 5 | +#' @export | ||
| 6 | +SWITCHING_PERIOD <- 1/10e3 | ||
| 7 | + | ||
| 8 | +get_times <- function(start_from_period, how_many_periods) { | ||
| 9 | + fc <- 10e3 | ||
| 10 | + pc <- 1/fc | ||
| 11 | + start_time <- start_from_period * pc | ||
| 12 | + end_time <- start_time + how_many_periods * pc | ||
| 13 | + return(list(start_time = start_time, end_time = end_time)) | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +#' Read data with interference | ||
| 17 | +#' | ||
| 18 | +#' Reads data from the experiment. | ||
| 19 | +#' | ||
| 20 | +#' @param which number (should be from 0 to 16) which measurement to take | ||
| 21 | +#' @param start_from_period | ||
| 22 | +#' @param how_many_periods | ||
| 23 | +#' @param add_no_interference | ||
| 24 | +#' | ||
| 25 | +#' @return | ||
| 26 | +#' @export | ||
| 27 | +#' | ||
| 28 | +#' @importFrom dplyr filter mutate bind_rows between | ||
| 29 | +#' @importFrom feather read_feather | ||
| 30 | +#' @importFrom tibble tibble | ||
| 31 | +#' @importFrom purrr map_chr | ||
| 32 | +#' @importFrom stringr str_interp | ||
| 33 | +#' | ||
| 34 | +#' | ||
| 35 | +#' @examples | ||
| 36 | +#' | ||
| 37 | +#' T1 <- read_interference("/Users/karolniewiadomski/Documents/SCENT/Simulations/ExperimentsUZ/ErrorModelsDataClean/", | ||
| 38 | +#' which = c(2, 13), start_from_period=3, how_many_periods=1, add_no_interference=TRUE) | ||
| 39 | +#' head(T1) | ||
| 40 | +#' | ||
| 41 | +read_interference <- function( | ||
| 42 | + data_path, which = 0, start_from_period = 2, how_many_periods = 2, add_no_interference = FALSE) { | ||
| 43 | + times <- get_times(start_from_period, how_many_periods) | ||
| 44 | + | ||
| 45 | + if(min(which) < 0 || max(which) > 16) stop("Which between 0 and 16.") | ||
| 46 | + filenames <- map_chr(which, function(x) | ||
| 47 | + file.path(data_path, str_interp("data_$[.5d]{x}.feather") )) | ||
| 48 | + | ||
| 49 | + TD <- tibble() | ||
| 50 | + i <- 1 | ||
| 51 | + for(.filename in filenames) { | ||
| 52 | + T1 <- read_feather(.filename) | ||
| 53 | + T1 <- filter(T1, between(time, times$start_time, times$end_time)) | ||
| 54 | + T1 <- mutate(T1, measurement_no = which[i]) | ||
| 55 | + TD <- bind_rows(TD, T1) | ||
| 56 | + i <- i + 1 | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + # No interference is declared as measurement_no -1. | ||
| 60 | + if(add_no_interference) { | ||
| 61 | + T2 <- read_no_interference(data_path, start_from_period, how_many_periods) | ||
| 62 | + TD <- bind_rows(TD, T2) | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + return(TD) | ||
| 66 | + | ||
| 67 | +} | ||
| 68 | + | ||
| 69 | + | ||
| 70 | + | ||
| 71 | +#' Read data with no interference | ||
| 72 | +#' | ||
| 73 | +#' Reads data from measurements, without interference. | ||
| 74 | +#' | ||
| 75 | +#' @param start_from_period from which | ||
| 76 | +#' @param how_many_periods | ||
| 77 | +#' | ||
| 78 | +#' @return | ||
| 79 | +#' @export | ||
| 80 | +#' | ||
| 81 | +#' @importFrom feather read_feather | ||
| 82 | +#' @importFrom dplyr filter mutate between | ||
| 83 | +#' | ||
| 84 | +#' @examples | ||
| 85 | +#' | ||
| 86 | +#' T1 <- read_no_interference("/Users/karolniewiadomski/Documents/SCENT/Simulations/ExperimentsUZ/ErrorModelsDataClean/", 2, 2) | ||
| 87 | +#' head(T1) | ||
| 88 | +#' | ||
| 89 | +read_no_interference <- function( | ||
| 90 | + data_path, start_from_period = 2, how_many_periods = 2) { | ||
| 91 | + | ||
| 92 | + times <- get_times(start_from_period, how_many_periods) | ||
| 93 | + filename <- file.path(data_path, "data_no.feather") | ||
| 94 | + TD <- read_feather(filename) | ||
| 95 | + TD <- filter(TD, between(time, times$start_time, times$end_time)) | ||
| 96 | + TD <- mutate(TD, measurement_no = -1) # To be consistent measurement_no is -1. | ||
| 97 | + return(TD) | ||
| 98 | +} | ||
| 99 | + |
| 1 | +++ a/man/read_interference.Rd | ||
| @@ -0,0 +1,32 @@ | @@ -0,0 +1,32 @@ | ||
| 1 | +% Generated by roxygen2: do not edit by hand | ||
| 2 | +% Please edit documentation in R/reading_funs.R | ||
| 3 | +\name{read_interference} | ||
| 4 | +\alias{read_interference} | ||
| 5 | +\title{Read data with interference} | ||
| 6 | +\usage{ | ||
| 7 | +read_interference( | ||
| 8 | + data_path, | ||
| 9 | + which = 0, | ||
| 10 | + start_from_period = 2, | ||
| 11 | + how_many_periods = 2, | ||
| 12 | + add_no_interference = FALSE | ||
| 13 | +) | ||
| 14 | +} | ||
| 15 | +\arguments{ | ||
| 16 | +\item{which}{number (should be from 0 to 16) which measurement to take} | ||
| 17 | + | ||
| 18 | +\item{add_no_interference}{} | ||
| 19 | +} | ||
| 20 | +\value{ | ||
| 21 | + | ||
| 22 | +} | ||
| 23 | +\description{ | ||
| 24 | +Reads data from the experiment. | ||
| 25 | +} | ||
| 26 | +\examples{ | ||
| 27 | + | ||
| 28 | +T1 <- read_interference("/Users/karolniewiadomski/Documents/SCENT/Simulations/ExperimentsUZ/ErrorModelsDataClean/", | ||
| 29 | + which = c(2, 13), start_from_period=3, how_many_periods=1, add_no_interference=TRUE) | ||
| 30 | +head(T1) | ||
| 31 | + | ||
| 32 | +} |
| 1 | +++ a/man/read_no_interference.Rd | ||
| @@ -0,0 +1,25 @@ | @@ -0,0 +1,25 @@ | ||
| 1 | +% Generated by roxygen2: do not edit by hand | ||
| 2 | +% Please edit documentation in R/reading_funs.R | ||
| 3 | +\name{read_no_interference} | ||
| 4 | +\alias{read_no_interference} | ||
| 5 | +\title{Read data with no interference} | ||
| 6 | +\usage{ | ||
| 7 | +read_no_interference(data_path, start_from_period = 2, how_many_periods = 2) | ||
| 8 | +} | ||
| 9 | +\arguments{ | ||
| 10 | +\item{start_from_period}{from which} | ||
| 11 | + | ||
| 12 | +\item{how_many_periods}{} | ||
| 13 | +} | ||
| 14 | +\value{ | ||
| 15 | + | ||
| 16 | +} | ||
| 17 | +\description{ | ||
| 18 | +Reads data from measurements, without interference. | ||
| 19 | +} | ||
| 20 | +\examples{ | ||
| 21 | + | ||
| 22 | +T1 <- read_no_interference("/Users/karolniewiadomski/Documents/SCENT/Simulations/ExperimentsUZ/ErrorModelsDataClean/", 2, 2) | ||
| 23 | +head(T1) | ||
| 24 | + | ||
| 25 | +} |