создать столбцы с dplyr - PullRequest
       5

создать столбцы с dplyr

0 голосов
/ 18 марта 2020

Спокойной ночи! Я бразилец и не очень хорошо говорю по-английски. Я работаю с базой данных с более чем 10000 строками, представленными в следующем примере.

df <- data.frame(
  PROCESS = c(180022121, 180022121, 180022105, 180022105, 180022097, 180022097, 180022097, 180022501, 180022501), 
  NAME = c("A_NONIMATO", "A_NONIMATO", "C_NONIMATO", "C_NONIMATO", "D_NONIMATO", "D_NONIMATO", "D_NONIMATO", "G_NONIMATO", "G_NONIMATO"),DATE = c("02/01/2018", "02/01/2018", "01/01/2018", "01/01/2018", "01/01/2018", "01/01/2018", "01/01/2018", "02/01/2018", "02/01/2018"), 
  CRIME = c("ART.33", "ART.33", "ART.35", "ART.33", "ART.155", "ART.155", "ART.155", "ART.157", "ART.14CP"))

Мой вопрос: я хочу создать столбцы (CRIME2, CRIME3, CRIME4 и др. c.), Разделяющие преступления в строках наблюдая тот же процесс, то же имя и ту же дату. Столько столбцов, сколько есть преступлений.

Чтобы выглядеть так:

df2 <- data.frame(PROCESS = c(180022121, 180022105, 180022097, 180022501), 
                  NAME = c("A_NONIMATO", "C_NONIMATO", "D_NONIMATO", "G_NONIMATO"), 
                  DATE = c("02/01/2018", "01/01/2018", "01/01/2018", "02/01/2018"), 
                  CRIME = c("ART.33", "ART.35", "ART.155", "ART.157"),  
                  CRIME2 = c("ART.33", "ART.33", "ART.155", "ART.14CP"), 
                  CRIME3 = c("NA", "NA", "ART.155", "NA"), 
                  CRIME4 = c("NA", "NA", "NA", "NA"))

1 Ответ

3 голосов
/ 18 марта 2020

Мы можем создать столбец уникального идентификатора на основе PROCESS NAME и DATE и преобразовать данные в широкий формат.

library(dplyr)

df %>%
  group_by(PROCESS, NAME, DATE) %>%
  mutate(temp = paste0("CRIME", row_number())) %>%
  tidyr::pivot_wider(names_from = temp, values_from = CRIME)

#    PROCESS NAME       DATE       CRIME1  CRIME2   CRIME3 
#      <dbl> <fct>      <fct>      <fct>   <fct>    <fct>  
#1 180022121 A_NONIMATO 02/01/2018 ART.33  ART.33   NA     
#2 180022105 C_NONIMATO 01/01/2018 ART.35  ART.33   NA     
#3 180022097 D_NONIMATO 01/01/2018 ART.155 ART.155  ART.155
#4 180022501 G_NONIMATO 02/01/2018 ART.157 ART.14CP NA     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...