R Studio - переставить столбец за группой по - PullRequest
1 голос
/ 21 апреля 2020

У меня есть кадр данных, как показано ниже в R Studio. Я хочу сгруппировать по группам и идентификаторам, а затем создать новый столбец, который является потоком процесса существующего столбца. В то же время, я хочу удалить последовательный дублированный статус.

group <- c("a","a","a","a","a","b","b","b","b","b","b")
ID <- c(1,1,1,2,2,3,3,3,3,3,3)
status <- c("create", "new", "old","create","old","create","new","new","new","old","new")
d_f <- data.frame(group, ID, status)

Большое спасибо за ваше драгоценное время!

1 Ответ

1 голос
/ 21 апреля 2020

Мы можем создать группу по 'group', 'ID', filter из duplicated id-длины-длины в столбце 'status' и затем summarise, чтобы объединить 'status' с помощью paste в том же порядке появления

library(dplyr)
library(data.table)
library(stringr)
d_f %>%
    group_by(group, ID) %>% 
    filter(!duplicated(rleid(status))) %>% 
     summarise(status_flow = str_c(status, collapse= "> "))
# A tibble: 3 x 3
# Groups:   group [2]
#  group    ID status_flow          
#  <fct> <dbl> <chr>                
#1 a         1 create> new> old     
#2 a         2 create> old          
#3 b         3 create> new> old> new
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...