User:Sharp
Koodi on tarkoituksella jätetty kooditagien ulkopuolelle, koska se on keskeneräinen. Antaa kyllä nättejä tuloksia esim:
> summary(kalaframe)
kala keskipitoisuus Length:16 Min. :0.0350 Class :character 1st Qu.:0.3175 Mode :character Median :0.5058 Mean :0.5965 3rd Qu.:0.7809 Max. :1.9400
> summary(järviframe)
järvi keskipitoisuus Length:77 Min. :0.0450 Class :character 1st Qu.:0.2633 Mode :character Median :0.4100 Mean :0.5736 3rd Qu.:0.7400 Max. :2.2996
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[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)
summary(kalaframe) summary(järviframe)
Tästäpä jatkan aamusella.