Я ищу что-то вроде частичного pivot_longer
. Приведенный ниже пример работает, но он не изящен и запутывается, когда у меня больше столбцов _1, _2, _n. Кто-нибудь ищет домашний офис для решения проблемы?
library(tidyr)
library(dplyr)
#>
#> Attache Paket: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
dt = tribble(
~pat, ~bmi_0, ~score_0, ~bmi_5, ~score_5,
"a",25,30, 28, 43,
"b",27,20, 21, 25,
"c",28,21, 23, 21
)
dt_0 = dt %>% select(pat, bmi = bmi_0, score = score_0) %>% mutate(when="0")
dt_5 = dt %>% select(pat, bmi = bmi_5, score = score_5) %>% mutate(when="5")
# Ok, this could be combined...
bind_rows(dt_0, dt_5)
#> # A tibble: 6 x 4
#> pat bmi score when
#> * <chr> <dbl> <dbl> <chr>
#> 1 a 25 30 0
#> 2 b 27 20 0
#> 3 c 28 21 0
#> 4 a 28 43 5
#> 5 b 21 25 5
#> 6 c 23 21 5