Long: Long und Wide

View source: R/pivot-long.R

LongR Documentation

Long und Wide

Description

Erweiterung von tidyr::pivot_longer tidyr::pivot_wider

Long_rbind The function combines row by row and is actually a long function. Names and labels are discarded.

Usage

Long(x, ...)

## S3 method for class 'formula'
Long(x, data, key = "variable", value = "value", use.label = TRUE, ...)

## S3 method for class 'data.frame'
Long(
  x,
  ...,
  by = NULL,
  key = "variable",
  value = "value",
  id.vars = all.vars(by),
  use.label = TRUE,
  .list = NULL
)

Long_rbind(
  data,
  .list = list(NULL),
  by = NULL,
  key = "variable",
  value = NULL,
  ...
)

Wide(
  data,
  key,
  ...,
  values_fill = NULL,
  names_sep = "_",
  names_vary = "fastest"
)

Arguments

x

data.frame oder formula

...

namen der weiteren 'key' die mit key oder dem erster Teil der Formula zusammen an 'values_from' uebergeben wird

data

dataframe

key, value

Namen fuer die Ausgabe

use.label

attribut label verwenden

id.vars

Items

.list

Columns that are being unraveled list(t0 = 1:3, t1 = 4:6, t2 = 7:9)

values_fill

Fill in missing values default = NA

names_sep

Trennzeichen "_"

names_vary

an tidyr::pivot_wider

Value

data.frame

tibble

Examples

 
df <- data.frame(
  month = rep(month.abb[1:3], 2),
  student = rep(c("Amy", "Bob"), each = 3),
  A = c(9, 7, 6, 8, 6, 9),
  B = c(6, 7, 8, 5, 6, 7),
  C = c(1, 3, 6, 3, 4, 7)
)

df |> Long(A, B, by=~month)



 n <- 4
df <- data.frame(
  id = 1:n,
  group = gl(2, n / 2, labels = c("Control", "Treat")),
  age = round(runif(n, 18, 50)),
  arg1 = round(runif(n, 1, 3)),
  glu1 = round(runif(n, 1, 3)) + 10,
  cys1 = round(runif(n, 1, 3)) + 30,
  arg2 = round(runif(n, 5, 7)),
  glu2 = round(runif(n, 3, 4)) + 10,
  cys2 = round(runif(n, 4, 5)) + 30,
  arg3 = round(runif(n, 8, 9)),
  glu3 = round(runif(n, 4, 5)) + 10,
  cys3 = round(runif(n, 5, 6)) + 30
)
df


df |>
  Long_rbind2(
    .list = list(
      t0 = c("arg1", "glu1", "cys1"),
      t1 = c(NA, "glu2", "cys2"),
      t2 = c("arg3", "glu3", "cys3")
    ),
    by =  ~ id + group + age,
    value = c("Argin", "Glutaminsr", "Cystein"),
    key = "Time"
  )


df <- data.frame(
  month = rep(month.abb[1:3], 2),
  student = rep(c("Amy", "Bob"), each = 3),
  A = c(9, 7, 6, 8, 6, 9),
  B = c(6, 7, 8, 5, 6, 7),
  C = c(1, 3, 6, 3, 4, 7)
)

# das Orginal
df |> 
  tidyr::pivot_wider( 
    names_from = student,   
    values_from = c(A, B, C) )

# die Kopie
df |> Wide(student, A, B, C)

# aber die Formula kann mehr
df |> Wide(month ~ student, A , B, C)
df |> Wide(month ~ student, A, B)
df |> Wide(~ student, A, B) 

stp4/stp25tools documentation built on Feb. 27, 2025, 11:14 p.m.