R/filter_data_byday.R

#' @title Selekcja danych
#' 
#' @description 
#' Funkcja służy do filtrowania danych po miesiącach, dniach tygodnia i godzinach. Operuje ona bezpośrednio na ramce dane_all znajdującej
#' się w pakiecie.
#' 
#' @param days Wektor zawierający skrajne wartości zakresu dni, które chcemy uwzględnić. 
#' 
#' @param hours Wektor dwuelementowy zawierający informacje o przedziale godzin, który chcemy uwzględnić. Składa się z krańców żądanego zakresu.
#' 
#' @return 
#' Funkcja zwraca ramkę danych powstałą po agregacji danych według argumentów wejściowych.
#' 
#' @export

filter_data_byday <- function(days, hours=c(9,20)){
  dates <- seq.Date(from = as.Date(days[1]), to = as.Date(days[2]), by = 1)
  dates <- format(dates, format = "%d_%m")
  dates <- dates[dates %in% names(dane_all)]
  filtered <- dane_all[dates]
  suma <- 0
  print(length((filtered)))
  if(hours[1] == hours[2]) {
    for(i in 1:length(filtered)){
      suma <- suma + filtered[[i]][,(hours[1]-5)]
    }
    
  }
  else {
    for(i in 1:length(filtered)){
      suma <- suma + rowSums(filtered[[i]][,(hours[1]-5):(hours[2]-5)])
    }
  }
  wynik <- cbind(dane_all[[1]][,2:3],suma)
  names(wynik)[3] <- "total"
  wynik
}
topolskib/sciezkiCNK documentation built on May 31, 2019, 6:36 p.m.