используя опору tidyverse для создания длинного формата - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть следующий фрейм данных:

df -> tibble(Readmission10_LOS = c(0.55, 0.39), 
           Readmission10_Deceased = rep(TRUE, 2), 
          Readmission30_LOS = rep(NA, 2), 
          Readmission30_Deceased = rep(NA, 2))

Я бы хотел «удлинить» этот фрейм данных, используя pivot_long, чтобы получить следующую форму:

df_long -> structure(list(readmission = c(10, 30, 10, 30), LOS = c(0.552, 
NA, 0.3, NA), Deceased = c(TRUE, NA, TRUE, NA)), row.names = c(NA, 
-4L), class = c("tbl_df", "tbl", "data.frame"))

Вот что я попробовал:

df_long <- df %>% pivot_longer(
everything(),
names_to = c(".value", "readmission"), 
names_sep = "_"
 )

но это не дает ожидаемого результата.

Есть идеи?

1 Ответ

2 голосов
/ 27 февраля 2020

Это должно сделать работу:

df %>%
  pivot_longer(everything(),
               names_pattern = "readmission(\\d+)_(\\w+)",
               names_to = c("readmission", ".value"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...