PU
Size: a a a
PU
Ю
ЕТ
Ю
AS
AS
AS
AS
AS
PU
AS
PU
AS
AS
AS
⌨
library(tibble)
library(tidyr)
library(dplyr)
library(vctrs)
library(purrr)
tbl_1 <- tibble(srvc = vec_c("A", "D"), subsrvc = list_of(vec_c("B", "C"), vec_c("E", "F", "G")))
tbl_1 %>% mutate(subsrvc = map(subsrvc, vec_c, NA_character_)) %>% unnest(subsrvc) %>% mutate(subsrvc2 = if_else(is.na(subsrvc), srvc, NA_character_), subsrvc = if_else(is.na(subsrvc), srvc, subsrvc)) -> tbl_1
tbl_2 <- tibble(id = vec_c(1, 1, 1, 2, 2, 2, 2), srvc = vec_c("A", "B", "C", "D", "E", "F", "G"))
tbl_2 %>% inner_join(tbl_1, by = c("srvc" = "subsrvc")) %>% transmute(id, srvc, subsrvc = subsrvc2) %>% print
#> # A tibble: 7 x 3
#> id srvc subsrvc
#> <dbl> <chr> <chr>
#> 1 1 A A
#> 2 1 B <NA>
#> 3 1 C <NA>
#> 4 2 D D
#> 5 2 E <NA>
#> 6 2 F <NA>
#> 7 2 G <NA>
AS
AS
PU
> library(data.table)
> asis <- data.table(id = c(1, 1, 1, 2, 2, 2, 2),
+ srvc = c("A", "B", "C", "D", "E", "F", "G"))
> asis[, heads := c(srvc[1], rep(NA, .N - 1)), by = id]
> asis
id srvc heads
1: 1 A A
2: 1 B <NA>
3: 1 C <NA>
4: 2 D D
5: 2 E <NA>
6: 2 F <NA>
7: 2 G <NA>
AS