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 | +} |