|
|
Line 1: |
Line 1: |
| Ajokelpoinen, antaa ymmärrykseni mukaan varsin oikeanlaisia tuloksia. Käyttöliittymä ja mallin tulosten uploadaus täytyy vielä tehdä. | | Ajokelpoinen, antaa ymmärrykseni mukaan varsin oikeanlaisia tuloksia. Käyttöliittymä ja mallin tulosten uploadaus täytyy vielä tehdä. |
| | | <rcode> |
| library(OpasnetUtils) | | library(OpasnetUtils) |
|
| |
|
Latest revision as of 20:00, 31 August 2015
Ajokelpoinen, antaa ymmärrykseni mukaan varsin oikeanlaisia tuloksia. Käyttöliittymä ja mallin tulosten uploadaus täytyy vielä tehdä.
+ Show code- Hide code
library(OpasnetUtils)
data <- opbase.data(id="op_en4004.kerty_database")
# Otetaan mukaan vain yksilömittaukset
hdata <- data[data$Yksilöitä < 2,]
# Jätetään datasta pois sukupuolet, määrät ja muut tarpeettomat? sarakkeet
hdata <- hdata[c(1,2,7,8,9,10,11,15,16,17,20,21)]
# Eliminoidaan käyttökelvoton data
hdata <- hdata[hdata$Märkäpaino != 0,]
# Analysoidaan vain lihaskudosta
hdata <- hdata[hdata$Näyteosa == "lihas",]
# Analysoidaan vain elohopeaa
hdata <- hdata[hdata$Suure == "Elohopea",]
# Tutkitaan koodausvaiheessa pienempää otosta
otos <- hdata #hdata[1:2000,]
# Muutetaan tulossarake numeroiksi ja...
otos$Tulos <- as.numeric(levels(otos$Tulos))[otos$Tulos]
# poistetaan sieltä ei-numeeriset vastaukset
otos <- otos[!is.na(otos$Tulos),]
# Käsitellään tässä vaiheessa vasta järvet, tarkennetaan myöhemmin
otos <- otos[otos$Järvi != "",]
# Poistetaan otoksen faktoreista tarpeettomat levelit
for (column in 1:ncol(otos)){
if (is.factor(otos[,column])) {
otos[,column] <- factor(otos[,column])
}
}
# Luodaan vektorit kalojen nimiä ja keskipitoisuuksia varten
kala <- vector(length = length(levels(otos$Näytelaji)))
keskipitoisuus <- vector(length = length(levels(otos$Näytelaji)))
indeksi <- 0
# Silmukassa käydään laji kerrallaan kalat läpi ja otetaan niiden keskimääräinen elohopeapitoisuus talteen
for (laji in levels(otos$Näytelaji)) {
indeksi <- indeksi + 1
temp <- otos[otos$Näytelaji == laji,]
kala[indeksi] <- laji
keskipitoisuus[indeksi] <- mean(temp$Tulos)
}
# Luodaan vektoreista data.frame
kalaframe <- data.frame(kala, keskipitoisuus, stringsAsFactors = FALSE)
järvi <- vector(length = length(levels(otos$Järvi)))
keskipitoisuus <- vector(length = length(levels(otos$Järvi)))
indeksi <- 0
# Silmukassa käydään järvi kerrallaan järvet läpi ja otetaan niiden kalojen keskimääräinen elohopeapitoisuus talteen
for (vesistö in levels(otos$Järvi)) {
indeksi <- indeksi + 1
temp <- otos[otos$Järvi == vesistö,]
järvi[indeksi] <- vesistö
keskipitoisuus[indeksi] <- mean(temp$Tulos)
}
järviframe <- data.frame(järvi, keskipitoisuus, stringsAsFactors = FALSE)
# Lisätään dataframeihin koko suomeen suhteutettu pitoisuus
suht <- kalaframe$keskipitoisuus - mean(otos$Tulos)
suhtkala <- cbind(kalaframe, suht)
suht <- järviframe$keskipitoisuus - mean(otos$Tulos)
suhtjärvi <- cbind(järviframe, suht)
keskipitoisuus <- mean(otos$Tulos)
#Tässä kohti voisi uploadata asiat
#Tähän kohti käyttöliittymä jolla tarkastaa asioita.
#järvi <- vector(length = 23*513)
#kala <- järvi
#pitoisuus <- järvi
#indeksi <- 0
#for (vesistö in järviframe$järvi){
# for (laji in kalaframe$kala){
# indeksi <- indeksi + 1
# järvi[indeksi] <- vesistö
# kala[indeksi] <- laji
# keski <- mean(otos$Tulos)
# fisu <- suhtkala[suhtkala$kala == laji,]$suht
# lampi <- suhtjärvi[suhtjärvi$järvi == vesistö,]$suht
# pitoisuus[indeksi] <- keski + fisu + lampi
# }
#}
#testiframe1 <- data.frame(järvi, kala, pitoisuus, stringsAsFactors = FALSE)
# Tämä pätkä tarkastaa mallin antaman tuloksen suhteutettuna koko suomeen,
# ja virhearvoksi saadaan -2.702283e-13.
#summa <- 0
#keski <- mean(otos$Tulos)
#for (vesistö in levels(otos$Järvi)){
# for (laji in levels(otos$Näytelaji)){
# temp <- otos[otos$Järvi == vesistö,]
# temp <- temp[temp$Näytelaji == laji,]
#
# temp2 <- testiframe1[testiframe1$järvi == vesistö,]
# pitoisuus <- temp2[temp2$kala == laji,]$pitoisuus
#
# for (tulos in temp$Tulos){
# summa <- summa + (tulos - pitoisuus)
# }
# }
#}
#summary(kalaframe)
#summary(järviframe)
| |