I have this dataframe:
df <- structure(list(lg0 = c(FALSE, FALSE, TRUE, TRUE, TRUE, TRUE,
TRUE), lg2 = c(FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE
), lg4 = c(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), ld0 = c(TRUE,
TRUE, TRUE, FALSE, FALSE, TRUE, FALSE), ld1 = c(FALSE, FALSE,
FALSE, TRUE, FALSE, FALSE, TRUE), ld2 = c(FALSE, FALSE, FALSE,
FALSE, TRUE, FALSE, FALSE), ld4 = c(FALSE, FALSE, FALSE, FALSE,
FALSE, FALSE, FALSE)), class = "data.frame", row.names = c(NA,
-7L))
lg0 lg2 lg4 ld0 ld1 ld2 ld4
1 FALSE FALSE TRUE TRUE FALSE FALSE FALSE
2 FALSE TRUE FALSE TRUE FALSE FALSE FALSE
3 TRUE FALSE FALSE TRUE FALSE FALSE FALSE
4 TRUE FALSE FALSE FALSE TRUE FALSE FALSE
5 TRUE FALSE FALSE FALSE FALSE TRUE FALSE
6 TRUE FALSE FALSE TRUE FALSE FALSE FALSE
7 TRUE FALSE FALSE FALSE TRUE FALSE FALSE
How can I add missing columns lg1, lg3, ld3 filled with FALSE.
I would like to 'quasi' complete / fill / expand missing COLUMNS to have this:
This should be independent on which of the columns are not present, this can change.
Desired Output:
lg0 lg1 lg2 lg3 lg4 ld0 ld1 ld2 ld3 ld4
FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE FALSE
FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
TRUE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
So far I have tried:
library(tidyr)
library(dplyr)
library(readr)
df2 <- df1 %>%
pivot_longer(
everything()
) %>%
mutate(id = parse_number(name))
expand(df2, id, name)