Если у меня есть фрейм данных, как показано ниже, возможно ли расширить и сохранить все значения (без перезаписи исходной таблицы или сохранения промежуточных результатов)?
library(tidyverse)
d <- tibble(a = c("a", "a", "a", "b", "b"),
b = c("2019", "2020", "2021", "2019", "2020"),
x = 1:5) %>%
spread(key = b, value = x) # I did this on purpose because ..
# is it possible to simplify this?
d %>%
gather(-a, key = "b", val = "x") %>% # .. otherwise I could just join
expand(a, b) %>%
left_join(d %>%
gather(-a, key = "b", val = x),
by = c("a", "b"))
# is it possible to do something like:
d %>%
gather(-a, key = "b", val = "x") %>%
expand(a, b, .keep_all = TRUE) # there is of course no .keep_all for expand
# want data set
# a b x
# <chr> <chr> <int>
# 1 a 2019 1
# 2 a 2020 2
# 3 a 2021 3
# 4 b 2019 4
# 5 b 2020 5
# 6 b 2021 NA
Возможно, я что-то упустил, ноЯ не мог найти решение.