User:Sharp
From Opasnet
Jump to navigation
Jump to search
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) |
Retrieved from "https://en.opasnet.org/index.php?title=User:Sharp&oldid=38132"