Käyttäjä:Mori/Työaika
Opasnet Suomista
Versio hetkellä 24. kesäkuuta 2014 kello 13.35 – tehnyt Sharp (keskustelu | muokkaukset) (→Kohdistamon kirjaukset)
Kohdistamon kirjaukset
library(OpasnetUtils) library(ggplot2) objects.latest("Op_en6007", code_name = "answer") # We need timing dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset') poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot') dat <- dat[-as.numeric(as.character(poistot$Kirjausnro)) , colnames(dat) != "Result"] #tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus") #työtehtävät <- opbase.data("Op_fi3950.tyotehtavat") #työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma") #tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"] #työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"] #työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"] #colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu" #työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni") dat <- dat[dat$Henkilö == "Mori" , ] dat$Aika <- as.POSIXct(dat$Aika, tz = 'Europe/Helsinki') oletus <- dat[dat$Työ == "Oletus" , ] oletus <- as.numeric(oletus$Aika) molemmat <- dat[dat$Loppu != "NA" , ] molemmat$Loppu <- as.POSIXct(molemmat$Loppu, tz = 'Europe/Helsinki') ulos <- dat[dat$Työ == "Ulos" , ] ulos <- c(as.numeric(ulos$Aika), as.numeric(molemmat$Loppu)) if( length(oletus) > length(ulos)){ työaika <- (sum(ulos)-sum(oletus)+tail(oletus, n=1)) } else { työaika <- (sum(ulos)-sum(oletus)) } työaika <- (round(työaika/3600, digits = 2)) print(paste0("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia.")) dat <- dat[ dat$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') & dat$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 , ] out <- dat[1:4] out$Aika <- as.character(out$Aika) oprint(out) #oprint(työsuunnitelma) #oprint(työtehtävät) #tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6) #timeline <- makeTimeline(tuntikirjaus) #timeline <- timeline[order(timeline$Time) , ] #timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE) #for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]} #timeline[nrow(timeline), "end"] <- NA #timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01") #ggplot(timeline, aes( # xmin = Time, # as.Date(as.character(Start)) # xmax = end, # as.Date(as.character(End)) + 2 # ymin = as.numeric(Henkilö), # ymax = as.numeric(Henkilö) + 1, # fill = Työ)) + geom_rect() # |
Katso myös
Noudettu kohteesta ”https://fi.opasnet.org/index.php?title=Käyttäjä:Mori/Työaika&oldid=24384”