% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/wide2long.R
\name{wide2long}
\alias{wide2long}
\title{Alternative pivoting method for easily pivoting based on name pattern}
\usage{
wide2long(
  data,
  pattern,
  type = c("prefix", "infix", "suffix"),
  id.col = 1,
  instance.name = "instance"
)
}
\arguments{
\item{data}{data}

\item{pattern}{pattern(s) to match. Character vector of length 1 or more.}

\item{type}{type of match. can be one of "prefix","infix" or "suffix".}

\item{id.col}{ID column. Will fill ID for all. Column name or numeric index.
Default is "1", first column.}

\item{instance.name}{}
}
\value{
data.frame
}
\description{
This function requires and assumes a systematic naming of variables.
For now only supports one level pivoting. Adding more levels would require
an added "ignore" string pattern or similarly. Example 2.
}
\examples{
data.frame(
  1:20, sample(70:80, 20, TRUE),
  sample(70:100, 20, TRUE),
  sample(70:100, 20, TRUE),
  sample(170:200, 20, TRUE)
) |>
  setNames(c("id", "age", "weight_0", "weight_1", "height_1")) |>
  wide2long(pattern = c("_0", "_1"), type = "suffix")
data.frame(
  1:20, sample(70:80, 20, TRUE),
  sample(70:100, 20, TRUE),
  sample(70:100, 20, TRUE),
  sample(170:200, 20, TRUE)
) |>
  setNames(c("id", "age", "weight_0", "weight_a_1", "height_b_1")) |>
  wide2long(pattern = c("_0", "_1"), type = "suffix")
# Optional filling of missing values by last observation carried forward
# Needed for mmrm analyses
long_missings |>
  # Fills record ID assuming none are missing
  tidyr::fill(record_id) |>
  # Grouping by ID for the last step
  dplyr::group_by(record_id) |>
  # Filling missing data by ID
  tidyr::fill(names(long_missings)[!names(long_missings) \%in\% new_names]) |>
  # Remove grouping
  dplyr::ungroup()
}
