My solutions to Exercises:
#1 (pollutantmean.R)
#1 (pollutantmean.R)
pollutantmean <- function(directory, pollutant, id=1:332){ sum <- 0 trueValues <- 0 for (i in id){ prefix <- ""; if (i<10)prefix <- "00" else if(i<100) prefix <- "0" path <- paste(directory, "\\", prefix, i, ".csv", sep="") ## print(path) data <- read.csv(path) d <- data[[pollutant]] d <- d[!is.na(d)] # if(i==1)print(d) sum <- sum + sum(d) trueValues <- trueValues + sum(!is.na(d)) # if(i==1){ # print(sum(d)) # print(sum) # print(trueValues) # print(sum/trueValues) # } # print(sum/length(id)) } sum/trueValues }#2 (complete.R)
complete <- function(directory, id=1:332){ fileNos <- c() numberOfElements <-c() for (i in id){ prefix <- ""; if (i<10)prefix <- "00" else if(i<100) prefix <- "0" path <- paste(directory, "\\", prefix, i, ".csv", sep="") data <- read.csv(path) d1 <- data[["sulfate"]] d2 <- data[["nitrate"]] good <- complete.cases(d1, d2) bothNotNA <- length(good[good==TRUE]) fileNos <- c(fileNos, i) numberOfElements <- c(numberOfElements, bothNotNA) } data.frame(id = fileNos, nobs = numberOfElements) }#3 (corr.R)
corr <- function(directory, threshold = 0){ cors <- c() for (i in 1:332){ prefix <- ""; if (i<10)prefix <- "00" else if(i<100) prefix <- "0" path <- paste(directory, "\\", prefix, i, ".csv", sep="") data <- read.csv(path) d1 <- data[["sulfate"]] d2 <- data[["nitrate"]] good <- complete.cases(d1, d2) bothNotNA <- length(good[good]) if(bothNotNA>threshold){ cors <- c(cors, cor(d1[good], d2[good])) } } if(length(cors)==0)vector(mode="numeric", length=0) else cors }
No comments:
Post a Comment