Skip to content

Instantly share code, notes, and snippets.

@jonocarroll
Created May 27, 2016 06:43
Show Gist options
  • Save jonocarroll/5fa28bdd12dbe696acc67f8e3bec31cf to your computer and use it in GitHub Desktop.
Save jonocarroll/5fa28bdd12dbe696acc67f8e3bec31cf to your computer and use it in GitHub Desktop.
How did I not know about stack(), unstack(), and applying formula to a data.frame?
tmp <- data.frame(a = c(1, 2, 3), b = c(4, 3, 5), c = c(4, 4, 5))
tmp
# a b c
# 1 1 4 4
# 2 2 3 4
# 3 3 5 5
formula(tmp)
# a ~ b + c
library(dplyr)
formula(mtcars %>% add_rownames("model"))
# model ~ mpg + cyl + disp + hp + drat + wt + qsec + vs + am + gear + carb
tmp.stack <- stack(tmp)
tmp.stack
# values ind
# 1 1 a
# 2 2 a
# 3 3 a
# 4 4 b
# 5 3 b
# 6 5 b
# 7 4 c
# 8 4 c
# 9 5 c
stack(tmp, select = -b)
# values ind
# 1 1 a
# 2 2 a
# 3 3 a
# 4 4 c
# 5 4 c
# 6 5 c
unstack(tmp.stack)
# a b c
# 1 1 4 4
# 2 2 3 4
# 3 3 5 5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment