View source: R/transform.scdf.R
moving_median | R Documentation |
Takes an scdf and applies transformations to each individual case. This is useful to calculate or modify new variables.
moving_median(x, lag = 1)
moving_mean(x, lag = 1)
local_regression(x, mt = 1:length(x), f = 0.2)
first_of(x, positions = 0)
across_cases(...)
all_cases(...)
## S3 method for class 'scdf'
transform(`_data`, ...)
x |
A logical vector. |
lag |
Number of values surrounding a value to calculate the average |
mt |
A vector with measurement times. |
f |
the proportion of surrounding data influencing each data point. |
positions |
A numeric vector with relative positions to the first appearance of a TRUE value in x. |
... |
Expressions. |
_data |
An scdf. |
This function is a method of the generic transform function. Unlike the
generic function, it calculates expressions serially. This means that the
results of the calculation of one expression are the basis for the following
computations. The n
function returns the number of measurements in a
case. The all_cases
function is a helper function that extracts the
values of a variable from all cases. It takes an expression as an argument.
For example, mean(all_cases(values))
calculates the mean of the values
from all cases. mean(all_cases(values[phase == "A"]))
will calculate
the mean of all values where phase is A. The function across_cases
allows to calculate new variables or replace existing variables across all
cases. E.g., across_cases(values_ranked = rank(values, na.last =
"keep"))
will calculate a new variable with values ranked across all cases.
An scdf.
Other data manipulation functions:
add_l2()
,
as.data.frame.scdf()
,
as_scdf()
,
fill_missing()
,
outlier()
,
ranks()
,
rescale()
,
scdf()
,
select_cases()
,
set_vars()
,
shift()
,
smooth_cases()
,
standardize()
,
truncate_phase()
## Creates a single-case with frequency distributions. The proportion and
## percentage of the frequencies are calculated with transform:
design <- design(
n = 3,
level = 5,
distribution = "binomial",
n_trials = 20,
start_value = 0.5
)
study <- random_scdf(design)
transform(study, proportion = values/trials, percentage = proportion * 100)
## Z standardize the dependent variable and add two new variables:
exampleAB |>
transform(
values = scale(values),
mean_values = mean(values),
sd_values = sd(values)
)
## Use `all` to calculate global variables.
exampleAB |>
transform(
values_center_case = values - mean(values[phase == "A"]),
values_center_global = values - mean(all(values[phase == "A"])),
value_dif = values_center_case - values_center_global
)
## Use `across_cases` to calculate or replace a variable with values from
## all cases. E.g., standardize the dependent variable:
exampleABC |>
transform(
across_cases(values = scale(values))
)
## Rank transform the values based on all cases vs. within each case:
exampleABC |>
transform(
across_cases(values_across = rank(values, na.last="keep")),
value_within = rank(values, na.last="keep")
)
## Three helper functions to smooth the data
Huber2014$Berta |>
transform(
"compliance (moving median)" = moving_median(compliance),
"compliance (moving mean)" = moving_mean(compliance),
"compliance (local regression)" = local_regression(compliance, mt)
)
## Function first_of() helps to set NAs for specific phases.
## E.g., you want to replace the first two values of phase A and the first
## value of phase B and its preceding value.
byHeart2011 |>
transform(
values = replace(values, first_of(phase == "A", 0:1), NA),
values = replace(values, first_of(phase == "B", -1:0), NA)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.