Ero sivun ”Kohdistamo” versioiden välillä
(uusi rakenne ja sen mukaiset ovariablet) |
(bugs fixed) |
||
Rivi 1: | Rivi 1: | ||
{{metodi}} | {{metodi}} | ||
[[op_en:Timetracker]] | [[op_en:Timetracker]] | ||
== Kirjaukset == | |||
<rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables=" | <rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables=" | ||
Rivi 49: | Rivi 51: | ||
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset2", | opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset2", | ||
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username) | obj_type = "variable", act_type = "append", language = "fin", who = wiki_username) | ||
cat("Kirjaus onnistui. Nämä tiedot tallennettiin.\n") | |||
out$Result <- as.character(as.POSIXct(out$Result, origin="1970-01-01 00:00:00")) | out$Result <- as.character(as.POSIXct(out$Result, origin="1970-01-01 00:00:00")) | ||
oprint(out) | oprint(out) | ||
</rcode> | </rcode> | ||
Rivi 98: | Rivi 98: | ||
"> | "> | ||
library(OpasnetUtils) | library(OpasnetUtils) | ||
library(ggplot2) | #library(ggplot2) | ||
objects.latest(" | objects.latest("Op_fi3948", code_name = "alusta") # kirjausajat | ||
kirjausajat <- EvalOutput(kirjausajat) | |||
result(kirjausajat) <- as.character(as.POSIXct(result(kirjausajat), origin="1970-01-01 00:00:00")) | |||
oprint(kirjausajat@output) | |||
#ggplot(kirjausajat, 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() | |||
</rcode> | |||
<rcode name="answer" embed=1 showcode=0 label="Poista kirjaus" variables=" | |||
name:nro|description:Poistettavan kirjauksen rivinumero (Obs)|type:text| | |||
category:Kirjauksen poisto| | |||
name:syy|description:Poiston syy|type:text | |||
"> | |||
library(OpasnetUtils) | |||
nro <- gsub("\\s", "", unlist(strsplit(nro, ","))) # Pilkotaan pilkusta ja poistetaan alku- ja loppuvälilyönnit | |||
dat <- data.frame( | |||
Timestamp = Sys.time(), | |||
User = wiki_username, | |||
Syy = syy, | |||
Result = nro | |||
) | |||
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot2", | |||
act_type = "append", language = "fin", who = wiki_username | |||
) | |||
cat("Nämä kirjaukset poistettu onnistuneesti.\n") | |||
oprint(dat) | |||
</rcode> | |||
* Katso ohjeita sivulta [[Kohdistamo/Ohje]] | |||
* {{tuloslinkki}} | |||
== Alusta muuttujat == | |||
<rcode name="alusta" label="Alusta ovariablet kirjaukset, kirjauspoistot, kirjausajat" embed=1> | |||
# Tämä on koodi Op_fi3948/alusta sivulla [[Kohdistamo]] | |||
library(OpasnetUtils) | |||
kirjaukset <- Ovariable( | kirjaukset <- Ovariable( | ||
Rivi 125: | Rivi 177: | ||
"Op_fi3948/alusta", # [[Kohdistamo]] | "Op_fi3948/alusta", # [[Kohdistamo]] | ||
"Op_fi3948/alusta", # [[Kohdistamo]] | "Op_fi3948/alusta", # [[Kohdistamo]] | ||
"Op_fi3948/oletukset", # [[Kohdistamo]] | |||
"Op_fi3948/oletukset", # [[Kohdistamo]] | |||
"Op_fi3948/oletukset", # [[Kohdistamo]] | |||
"Op_fi3948/oletukset" # [[Kohdistamo]] | |||
) | ) | ||
), | ), | ||
formula = function(...) { | formula = function(...) { | ||
dat <- kirjaukset[-na.omit(result(kirjauspoistot)) , ] | dat <- kirjaukset[-na.omit(result(kirjauspoistot)) , ] | ||
alku <- as.numeric(as.POSIXct(alku)) | |||
loppu <- as.numeric(as.POSIXct(loppu)) | |||
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus") | #tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus") | ||
Rivi 149: | Rivi 204: | ||
res <- result(dat) | res <- result(dat) | ||
dat <- dat[order(dat$Person, res),] | dat <- dat[order(dat$Person, res),] | ||
dat$Duration <- c(res[2:length(res)] - res[1:(length(res)-1)], 0) # | dat$Duration <- c(res[2:length(res)] - res[1:(length(res)-1)], 0) / 3600 | ||
# This removes the last entry from each person's duration because that is calculated wrongly. | |||
dat$Duration[c(match(unique(dat$Person),dat$Person)-1,length(dat$Person))] <- 0 | |||
if(projekti!="Kaikki") dat <- dat[dat$Work == projekti , ] | if(projekti!="Kaikki") dat <- dat[dat$Work == projekti , ] | ||
res <- result(dat) | |||
dat <- dat[res >= alku & res <= loppu +3600*24 , ] | |||
if(nrow(dat@output)==0) { | |||
warning("No rows to display\n") | |||
return(dat) | |||
} | |||
tyoaika <- aggregate(dat@output["Duration"], dat@output[c("Person","Work")], sum) | |||
tyoaika <- aggregate(dat["Duration"], dat["Person" | |||
cat("Valitulla välillä tehty työaika yhteensä tunteina: \n") | |||
oprint(tyoaika[tyoaika$Work!="Ulos",]) | |||
return(dat) | return(dat) | ||
} | } | ||
) | ) | ||
objects.store(kirjaukset, kirjauspoistot, kirjausajat) | |||
cat("Ovariablet kirjaukset, kirjauspoistot ja kirjausajat tallennettu.\n") | |||
</rcode> | |||
<rcode name="oletukset" label="Alusta oletusarvot alku, loppu, tekija, projekti" embed=1> | |||
# Tämä on koodi Op_fi3948/oletukset sivulla [[Kohdistamo]] | |||
library(OpasnetUtils) | library(OpasnetUtils) | ||
alku <- "2018-06-01" | |||
loppu <- "2099-01-01" | |||
tekija <- "Kaikki" | |||
projekti <- "Kaikki" | |||
objects.store(alku, loppu, tekija, projekti) | |||
cat("Vektorit alku, loppu, tekija ja projekti tallennettu.\n") | |||
</rcode> | </rcode> | ||
== Aikakoneen laskenta == | == Aikakoneen laskenta == |
Versio 29. kesäkuuta 2018 kello 16.41
Moderaattori:Ei ole (katso kaikki) Kuinka ryhtyä moderaattoriksi? Sivun edistymistä ei ole arvioitu. Arvostuksen määrää ei ole arvioitu (ks. peer review). |
Lisää dataa
|
Kirjaukset
- Katso ohjeita sivulta Kohdistamo/Ohje
- {{#opasnet_base_link:Op_fi3948}}
Alusta muuttujat
Aikakoneen laskenta
Tässä on siistitty ja dokumentoitu versio Aikakoneen makeTimeline-funktiosta, joka ottaa sisäänsä työajan alku- ja loppuaikoja ja tuottaa aikajanan. Funktion olennainen lisäarvo on siinä, että sille voi antaa päällekkäisiä ajanjaksoja, ja se korvaa vanhemmat kirjaukset (eli ylempänä taulukossa olevat) uudemmilla, jos niiissä on päällekkäisyyksiä. Toinen lisäarvo on se, että se automaattisesti käsittelee jokaisen henkilön ajankäyttöä erikseen, mutta muiden indeksien suhteen se vain periyttää tiedot aikajanalle. Muita indeksejä voi siis käyttää tarpeen mukaan.
----#: . Kehityskohteita: tarvitaanko koskaan tilannetta, jossa henkilösarakkeita onkin useita? Ei liene tärkeä, vaan tarvittaessa tämä toteutetaan luomalla tämmöinen sarake etukäteen. --Jouni Tuomisto (keskustelu) 15. heinäkuuta 2014 kello 08.28 (UTC) (type: truth; paradigms: science: comment)