2015-05-19 2 views
3

У меня есть временная диаграмма данных с столбцом дня недели. Я хотел бы заменить все понедельники (1-й день), которые являются праздниками, с 6 по воскресеньям, не нарушая мой трубопровод, используя magrittr.Использование magrittr для изменения поднабора значений

Без трубопроводов это выглядит следующим образом:

dates = c("5/24/15", "5/25/15", "5/26/15", "5/27/15", "5/28/15", "5/29/15", "5/30/15") 
df <- data.frame(date = as.POSIXct(dates,format = "%m/%d/%y"), day = 0:6, value = 1:7) 
holidays <- c("2015-05-25") 
df$day[df$date %in% as.POSIXct(holidays)] <- 6 

Но я хотел бы сделать что-то вроде этого:

df <- df %>% 
    filter(value < 30) %>% 
    mutate(new_variable = something) %>% 
    REPLACE HOLIDAYS WITH SUNDAY HERE 
+3

'? Replace' должно работать. –

+0

Всегда приятно, когда плакаты используют имя функции, в которой они нуждаются в вопросе. – Gregor

+0

Все от имени «большой трубы»

ответ

2

использование% в%, чтобы сделать индекс, а затем заменить мутировать я думаю :

df %>% mutate(day=replace(day, date %in% as.POSIXct(holidays), 6)) 
+0

Спасибо, что работает. – Emrb

Смежные вопросы