add_variables() adds a new column to a data frame, while add_case() adds a new row to a data frame. These are convenient functions to add columns or rows not only at the end of a data frame, but at any column or row position. Furthermore, they allow easy integration into a pipe-workflow.

add_variables(data, ..., .after = Inf, .before = NULL)

add_case(data, ..., .after = Inf, .before = NULL)

Arguments

data

A data frame.

...

One or more named vectors that indicate the variables or values, which will be added as new column or row to data. For add_case(), non-matching columns in data will be filled with NA.

.after, .before

Numerical index of row or column, where after or before the new variable or case should be added. If .after = -1, variables or cases are added at the beginning; if .after = Inf, variables and cases are added at the end. In case of add_variables(), .after and .before may also be a character name indicating the column in data, after or infront of what ... should be inserted.

Value

data, including the new variables or cases from ....

Note

For add_case(), if variable does not exist, a new variable is created and existing cases for this new variable get the value NA. See 'Examples'.

Examples

d <- data.frame(
  a = c(1, 2, 3),
  b = c("a", "b", "c"),
  c = c(10, 20, 30),
  stringsAsFactors = FALSE
)

add_case(d, b = "d")
#>    a b  c
#> 1  1 a 10
#> 2  2 b 20
#> 3  3 c 30
#> 4 NA d NA
add_case(d, b = "d", a = 5, .before = 1)
#>   a b  c
#> 4 5 d NA
#> 1 1 a 10
#> 2 2 b 20
#> 3 3 c 30

# adding a new case for a new variable
add_case(d, e = "new case")
#>    a    b  c        e
#> 1  1    a 10     <NA>
#> 2  2    b 20     <NA>
#> 3  3    c 30     <NA>
#> 4 NA <NA> NA new case

add_variables(d, new = 5)
#>   a b  c new
#> 1 1 a 10   5
#> 2 2 b 20   5
#> 3 3 c 30   5
add_variables(d, new = c(4, 4, 4), new2 = c(5, 5, 5), .after = "b")
#>   a b new new2  c
#> 1 1 a   4    5 10
#> 2 2 b   4    5 20
#> 3 3 c   4    5 30