long_to_wide_converter: Convert long/tidy data frame to wide format

View source: R/long-to-wide-converter.R

long_to_wide_converterR Documentation

Convert long/tidy data frame to wide format

Description

This conversion is helpful mostly for repeated measures design, where removing NAs by participant can be a bit tedious.

Usage

long_to_wide_converter(
  data,
  x,
  y,
  subject.id = NULL,
  paired = TRUE,
  spread = TRUE,
  ...
)

Arguments

data

A data frame (or a tibble) from which variables specified are to be taken. Other data types (e.g., matrix, table, array, etc.) will not be accepted. Additionally, grouped data frames from {dplyr} should be ungrouped before they are entered as data.

x

The grouping (or independent) variable from data. For repeated measures designs, see the note on ordering in subject.id.

y

The response (or outcome or dependent) variable from data.

subject.id

Relevant in case of a repeated measures or within-subjects design (i.e., paired = TRUE), it specifies the subject or repeated measures identifier. Important: If this argument is NULL (which is the default), observations are paired by their row order within each level of x (i.e., the data is assumed to be sorted in a subject-1, subject-2, ... pattern within every level). If the data is not sorted this way, the paired results will be silently incorrect, so it is safest to always specify subject.id.

paired

Logical that decides whether the experimental design is repeated measures/within-subjects or between-subjects. The default is FALSE.

spread

Logical that decides whether the data frame needs to be converted from long/tidy to wide (default: TRUE).

...

Currently ignored.

Value

A tibble with NAs removed while respecting the between-or-within-subjects nature of the dataset: for paired designs, a subject with a missing value in any condition is removed entirely, while for unpaired designs only the rows with missing values are removed. Rows are grouped by subject.id whenever it is supplied, so with paired = FALSE and a subject.id, a missing value still removes every row of that subject. The .rowid column contains the subject identifier (or an internal row identifier).

Citation

Patil, I., (2021). statsExpressions: R Package for Tidy Dataframes and Expressions with Statistical Details. Journal of Open Source Software, 6(61), 3236, https://doi.org/10.21105/joss.03236

Examples

# for reproducibility
library(statsExpressions)
set.seed(123)

# repeated measures design
long_to_wide_converter(
  bugs_long,
  condition,
  desire,
  subject.id = subject,
  paired = TRUE
)

# independent measures design
long_to_wide_converter(mtcars, cyl, wt, paired = FALSE)


statsExpressions documentation built on Oct. 9, 2026, 5:06 p.m.