+ Näytä koodi- Piilota koodi
library(OpasnetBaseUtils)
library(xtable)
####Budjettilaskenta: suunnitelluista palkka- ja muista menoista lasketaan kokonaisbudjetti. Toistaiseksi käsitellään vain menoja, tuloja ei ole sisällytetty.
budjettilaskenta <- function(page) {
data <- op_baseGetData("opasnet_base", page)[, -c(1,2)]
data <- reshape(data, idvar = "obs.1", timevar = "Havainto", direction = "wide")[, -c(1,4,5,6)]
colnames(data) <- c("Kustannuslaji", "määrä", "kuvaus")
#print(xtable(data), type='html')
temp <- data.frame(Kustannuslaji = kustannuslaji, määrä = määrä, kuvaus = kuvaus)
data <- rbind(data, temp)
print(xtable(data), type='html')
kertoimet <- op_baseGetData("opasnet_base", "Op_fi2704")
kertoimet <- kertoimet[kertoimet$Laitos == "THL" & kertoimet$Vuosi == "2011" & kertoimet$Rahoittaja == "STM", ]
#kertoimet
YK <- kertoimet[kertoimet$Kerroin == "Yleiskustannus", "Result"]
SK <- kertoimet[kertoimet$Kerroin == "Palkan sivukulu", "Result"]
cat("Yleiskustannuskerroin:", YK, "Sivukulukerroin", SK, "\n")
palkka <- op_baseGetData("opasnet_base", "Op_fi2705")[, -c(1,2,7)]
#print(xtable(palkka), type = 'html')
palkka <- palkka[palkka$Laitos == "THL" & palkka$Vuosi == "2011", -c(1,3)]
colnames(palkka)[1] <- "Kustannuslaji"
#print(xtable(palkka), type = 'html')
data <- merge(data, palkka, all.x=TRUE)
#print(xtable(data), type = 'html')
test <- is.na(data$Result)
data$Result <- ifelse(test, data$määrä, data$Result * data$määrä)
data$määrä <- ifelse(test, 0, data$määrä)
colnames(data)[c(2,4)] <- c("hlö-kk", "summa")
#print(xtable(data), type = 'html')
palkat <- sum(data[data[, "hlö-kk"] != 0, "summa"])
out <- data.frame(Kustannuslaji = c("Palkat", "Sivukulut"), summa = c(palkat, palkat*SK))
#print(xtable(out), type = 'html')
test <- "Palkka" != substr(data$Kustannuslaji, 1, 6)
#test
out <- rbind(out, data[test, c("Kustannuslaji", "summa")])
out <- rbind(out, data.frame(Kustannuslaji = "Yleiskustannus", summa = sum(out$summa[1:2])*YK))
out <- rbind(out, data.frame(Kustannuslaji = "Yhteensä", summa = sum(out$summa)))
print(xtable(out), type = 'html')
#return(list(out1, out2, out3, out4))
}
budjettilaskenta("Op_fi2682")
| |