From 1f2b1b8e9a29717a4ed87c2242513b8227b14c00 Mon Sep 17 00:00:00 2001 From: Karol Niewiadomski Date: Mon, 21 Sep 2020 20:17:37 +0100 Subject: [PATCH] First commit --- .Rbuildignore | 2 ++ .Rhistory | 16 ++++++++++++++++ .gitignore | 1 + DESCRIPTION | 22 ++++++++++++++++++++++ ExperimentsPackage.Rproj | 21 +++++++++++++++++++++ NAMESPACE | 14 ++++++++++++++ R/reading_funs.R | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ man/read_interference.Rd | 32 ++++++++++++++++++++++++++++++++ man/read_no_interference.Rd | 25 +++++++++++++++++++++++++ 9 files changed, 232 insertions(+), 0 deletions(-) create mode 100644 .Rbuildignore create mode 100644 .Rhistory create mode 100644 .gitignore create mode 100644 DESCRIPTION create mode 100644 ExperimentsPackage.Rproj create mode 100644 NAMESPACE create mode 100644 R/reading_funs.R create mode 100644 man/read_interference.Rd create mode 100644 man/read_no_interference.Rd diff --git a/.Rbuildignore b/.Rbuildignore new file mode 100644 index 0000000..b2f1682 --- /dev/null +++ b/.Rbuildignore @@ -0,0 +1,2 @@ +^ExperimentsPackage\.Rproj$ +^\.Rproj\.user$ diff --git a/.Rhistory b/.Rhistory new file mode 100644 index 0000000..365491b --- /dev/null +++ b/.Rhistory @@ -0,0 +1,16 @@ +devtools::check() +devtools::use_package() +roxygen2::roxygenise() +roxygen2::roxygenise() +usethis::use_package("dplyr") +usethis::use_package("feather") +usethis::use_package("tibble") +usethis::use_package("purrr") +usethis::use_package("stringr") +devtools::check() +devtools::check() +devtools::check() +devtools::check() +devtools::check() +devtools::build() +devtools::install() diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cd67eac --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.Rproj.user diff --git a/DESCRIPTION b/DESCRIPTION new file mode 100644 index 0000000..6ea96a0 --- /dev/null +++ b/DESCRIPTION @@ -0,0 +1,22 @@ +Package: ExperimentsPackage +Title: Useful functions for data analysis of UZ experiments. +Version: 0.0.0.9000 +Authors@R: + person(given = "Karol", + family = "Niewiadomski", + role = c("aut", "cre"), + email = "karol.niewiadomski@nottingham.ac.uk", + comment = c(ORCID = "YOUR-ORCID-ID")) +Description: This package collects useful functions for the data analysis of experiments prepared at University of Zielona Góra. +License: `use_mit_license()`, `use_gpl3_license()` or friends to + pick a license +Encoding: UTF-8 +LazyData: true +Roxygen: list(markdown = TRUE) +RoxygenNote: 7.1.0 +Imports: + dplyr, + feather, + tibble, + purrr, + stringr diff --git a/ExperimentsPackage.Rproj b/ExperimentsPackage.Rproj new file mode 100644 index 0000000..cba1b6b --- /dev/null +++ b/ExperimentsPackage.Rproj @@ -0,0 +1,21 @@ +Version: 1.0 + +RestoreWorkspace: No +SaveWorkspace: No +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX + +AutoAppendNewline: Yes +StripTrailingWhitespace: Yes + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source +PackageRoxygenize: rd,collate,namespace diff --git a/NAMESPACE b/NAMESPACE new file mode 100644 index 0000000..f70af01 --- /dev/null +++ b/NAMESPACE @@ -0,0 +1,14 @@ +# Generated by roxygen2: do not edit by hand + +export(SWITCHING_FREQUENCY) +export(SWITCHING_PERIOD) +export(read_interference) +export(read_no_interference) +importFrom(dplyr,between) +importFrom(dplyr,bind_rows) +importFrom(dplyr,filter) +importFrom(dplyr,mutate) +importFrom(feather,read_feather) +importFrom(purrr,map_chr) +importFrom(stringr,str_interp) +importFrom(tibble,tibble) diff --git a/R/reading_funs.R b/R/reading_funs.R new file mode 100644 index 0000000..161642d --- /dev/null +++ b/R/reading_funs.R @@ -0,0 +1,99 @@ + +#' @export +SWITCHING_FREQUENCY <- 10e3 + +#' @export +SWITCHING_PERIOD <- 1/10e3 + +get_times <- function(start_from_period, how_many_periods) { + fc <- 10e3 + pc <- 1/fc + start_time <- start_from_period * pc + end_time <- start_time + how_many_periods * pc + return(list(start_time = start_time, end_time = end_time)) +} + +#' Read data with interference +#' +#' Reads data from the experiment. +#' +#' @param which number (should be from 0 to 16) which measurement to take +#' @param start_from_period +#' @param how_many_periods +#' @param add_no_interference +#' +#' @return +#' @export +#' +#' @importFrom dplyr filter mutate bind_rows between +#' @importFrom feather read_feather +#' @importFrom tibble tibble +#' @importFrom purrr map_chr +#' @importFrom stringr str_interp +#' +#' +#' @examples +#' +#' T1 <- read_interference("/Users/karolniewiadomski/Documents/SCENT/Simulations/ExperimentsUZ/ErrorModelsDataClean/", +#' which = c(2, 13), start_from_period=3, how_many_periods=1, add_no_interference=TRUE) +#' head(T1) +#' +read_interference <- function( + data_path, which = 0, start_from_period = 2, how_many_periods = 2, add_no_interference = FALSE) { + times <- get_times(start_from_period, how_many_periods) + + if(min(which) < 0 || max(which) > 16) stop("Which between 0 and 16.") + filenames <- map_chr(which, function(x) + file.path(data_path, str_interp("data_$[.5d]{x}.feather") )) + + TD <- tibble() + i <- 1 + for(.filename in filenames) { + T1 <- read_feather(.filename) + T1 <- filter(T1, between(time, times$start_time, times$end_time)) + T1 <- mutate(T1, measurement_no = which[i]) + TD <- bind_rows(TD, T1) + i <- i + 1 + } + + # No interference is declared as measurement_no -1. + if(add_no_interference) { + T2 <- read_no_interference(data_path, start_from_period, how_many_periods) + TD <- bind_rows(TD, T2) + } + + return(TD) + +} + + + +#' Read data with no interference +#' +#' Reads data from measurements, without interference. +#' +#' @param start_from_period from which +#' @param how_many_periods +#' +#' @return +#' @export +#' +#' @importFrom feather read_feather +#' @importFrom dplyr filter mutate between +#' +#' @examples +#' +#' T1 <- read_no_interference("/Users/karolniewiadomski/Documents/SCENT/Simulations/ExperimentsUZ/ErrorModelsDataClean/", 2, 2) +#' head(T1) +#' +read_no_interference <- function( + data_path, start_from_period = 2, how_many_periods = 2) { + + times <- get_times(start_from_period, how_many_periods) + filename <- file.path(data_path, "data_no.feather") + TD <- read_feather(filename) + TD <- filter(TD, between(time, times$start_time, times$end_time)) + TD <- mutate(TD, measurement_no = -1) # To be consistent measurement_no is -1. + return(TD) +} + diff --git a/man/read_interference.Rd b/man/read_interference.Rd new file mode 100644 index 0000000..9daaf46 --- /dev/null +++ b/man/read_interference.Rd @@ -0,0 +1,32 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/reading_funs.R +\name{read_interference} +\alias{read_interference} +\title{Read data with interference} +\usage{ +read_interference( + data_path, + which = 0, + start_from_period = 2, + how_many_periods = 2, + add_no_interference = FALSE +) +} +\arguments{ +\item{which}{number (should be from 0 to 16) which measurement to take} + +\item{add_no_interference}{} +} +\value{ + +} +\description{ +Reads data from the experiment. +} +\examples{ + +T1 <- read_interference("/Users/karolniewiadomski/Documents/SCENT/Simulations/ExperimentsUZ/ErrorModelsDataClean/", + which = c(2, 13), start_from_period=3, how_many_periods=1, add_no_interference=TRUE) +head(T1) + +} diff --git a/man/read_no_interference.Rd b/man/read_no_interference.Rd new file mode 100644 index 0000000..7d73b72 --- /dev/null +++ b/man/read_no_interference.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/reading_funs.R +\name{read_no_interference} +\alias{read_no_interference} +\title{Read data with no interference} +\usage{ +read_no_interference(data_path, start_from_period = 2, how_many_periods = 2) +} +\arguments{ +\item{start_from_period}{from which} + +\item{how_many_periods}{} +} +\value{ + +} +\description{ +Reads data from measurements, without interference. +} +\examples{ + +T1 <- read_no_interference("/Users/karolniewiadomski/Documents/SCENT/Simulations/ExperimentsUZ/ErrorModelsDataClean/", 2, 2) +head(T1) + +} -- libgit2 0.21.2