User:Sharp: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
Ajokelpoinen, antaa ymmärrykseni mukaan varsin oikeanlaisia tuloksia. Käyttöliittymä ja mallin tulosten uploadaus täytyy vielä tehdä. | |||
library(OpasnetUtils) | |||
data <- opbase.data(id="op_en4004.kerty_database") | data <- opbase.data(id="op_en4004.kerty_database") | ||
# Otetaan mukaan vain yksilömittaukset | # Otetaan mukaan vain yksilömittaukset | ||
Line 37: | Line 20: | ||
# Tutkitaan koodausvaiheessa pienempää otosta | # Tutkitaan koodausvaiheessa pienempää otosta | ||
otos <- hdata[1:2000,] | otos <- hdata #hdata[1:2000,] | ||
# Muutetaan tulossarake numeroiksi ja... | # Muutetaan tulossarake numeroiksi ja... | ||
Line 84: | Line 67: | ||
järviframe <- data.frame(järvi, keskipitoisuus, stringsAsFactors = FALSE) | järviframe <- data.frame(järvi, keskipitoisuus, stringsAsFactors = FALSE) | ||
summary(kalaframe) | # Lisätään dataframeihin koko suomeen suhteutettu pitoisuus | ||
summary(järviframe) | 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) | |||
</rcode> | </rcode> | ||
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ä.
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)
</rcode>