Как преобразовать позицию уникального идентификатора с течением времени из нескольких строк в одну строку? - PullRequest
0 голосов
/ 20 января 2020

Мне нужна помощь с уникальным запросом, я пока не нашел решения. Но это может быть потому, что я не знал, как сказать, что я ищу. Ниже приведен пример набора данных

name, position, start_date, end_date
ABC, Contractor, 09/02/2017, 07/01/2018
ABC, Associate Consultant, 08/01/2018, 31/12/2018
ABC, Consultant, 01/01/2019, 31/05/2019

По сути, AB C - это человек, который занимал различные должности с течением времени. Я хочу преобразовать этот набор данных, чтобы поместить AB C в один ряд и отслеживать их положение с течением времени. , Прикрепленное изображение показывает решение, которое я ищу

Буду признателен за любую помощь здесь!

Бест, Рохит

1 Ответ

0 голосов
/ 20 января 2020
library(dplyr)
library(tidyr)
df_txt <- c("name, position, start_date, end_date
ABC, Contractor, 09/02/2017, 07/01/2018
ABC, Associate Consultant, 08/01/2018, 31/12/2018
ABC, Consultant, 01/01/2019, 31/05/2019")

read_csv(df_txt) %>% 
  mutate_at(dplyr::vars(ends_with("_date")), .funs = dmy) %>% 
  rowwise() %>% 
  mutate(interval = list(seq(start_date, end_date, by ="month"))) %>% 
  select(name, position, interval) %>% 
  unnest(interval) %>% 
  mutate(interval = format(interval, "%Y-%m")) %>% 
  pivot_wider(id_cols = name, names_from = interval, values_from = position) %>% 
  view()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...