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

У меня есть набор данных:

 
x = data.frame(store=c("store1", "store1", "store1","store2","store2", "store3", "store3", "store4", "store4", "store4"),  
                  
                 pos=c("room1", "room2", "room2", "room1", "room1", "room1", "room1", "room2", "room2", "room3"),  
                  
                 error=c("error1", "error2", "error2", "error5", "error6", "error2", "error3", "error1", "error3", "error2"),  
               time = c("10:00:14", "10:00:44", "10:20:31", "10:24:11", "10:55:14", "10:20:10", "10:44:12", "10:04:34", "12:34:55", "10:12:17") 
                  
 )   
 

Я хочу выбрать строки с ошибкой2 или ошибкой5 в столбце ошибок и максимальным временем в столбце времени для каждого магазина и поз. Как я могу это сделать?

Итак, новый набор данных должен быть таким:


x_new = data.frame(store=c("store1","store2", "store3", "store4"),

               pos=c("room2", "room1",  "room1",  "room3"),

               error=c("error2",  "error5",  "error2",  "error2"),
               time = c("10:20:31", "10:24:11", "10:20:10",  "10:12:17")

)

1 Ответ

0 голосов
/ 04 февраля 2020
library(tidyverse)
library(chron)
x %>% 
  mutate(time = chron::as.times(time)) %>% 
  group_by(store, pos, error) %>%
  filter(error %in% c("error2", "error5")) %>% 
  summarise(time = max(time, na.rm = T))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...