Первоначально у меня есть этот код, который я пытаюсь упростить и улучшить удобочитаемость, используя оператор%>%.
#Get Sunday's from 2018-01-01 till today
d = seq(as.Date("2018-01-01"),Sys.Date()+365,by='day')
HolidayList = data.frame(Holidays=d[weekdays(d)=='Sunday'])
#Get Alternate saturdays 2nd and 4th
d = seq(as.Date("2018-01-01"),Sys.Date()+365,by='day')
saturdayList = d[weekdays(d)=='Saturday']
altSaturdayList = lapply(split(saturdayList, format(saturdayList, "%Y-%m")), function(x)
na.omit(x[c(2,4)]))
altSaturdayList = as.data.frame(altSaturdayList)
altSaturdayList = gather(altSaturdayList)
altSaturdayList = subset(altSaturdayList,select = c(value))
HolidayList = rbind(HolidayList, setNames(altSaturdayList, "Holidays"))
HolidayList = rbind(HolidayList, setNames(as.data.frame(as.Date("2018-11-06")), "Holidays"))
HolidayList = unique(HolidayList)
HolidayList = arrange(HolidayList,Holidays)
rm(d)
rm(saturdayList)
rm(altSaturdayList)
Я не хочу хранить промежуточные переменные, поэтому я подумал, что оператор pipe будет хорошим выбором, но я не могу воспроизвести результат.
Вот что я попробовал
HolidayList = saturdayList %>%
data.frame(lapply(split(saturdayList, format(saturdayList, "%Y-%m")), function(x)
na.omit(x[c(2,4)]))) %>%
subset(gather(altSaturdayList),select = c(value)) %>%
rbind(HolidayList, setNames(altSaturdayList, "Holidays")) %>%
rbind(HolidayList, setNames(as.data.frame(as.Date("2018-11-06")), "Holidays")) %>%
arrange(unique(HolidayList),Holidays)
Holidays
датафрейм содержит даты, к которым я пытаюсь привязать и добавить новые даты.
Как мне взять вывод каждого шага и поместить в качестве ввода в следующую строку, не создавая новые переменные?
Пожалуйста, объясните шаги, чтобы я мог понять процесс упрощения приведенного выше кода.