Дано: список файлов с показаниями датчика для сульфата и нитрата.Файл содержит 4 столбца (Date
, Sulfate
, Nitrate
, ID
).ID
относится к имени файла.который назван в честь местоположения зонда.то есть местоположение зонда 11
имеет файл с именем 011.csv
и 11
, заполняющий столбец идентификатора.Есть 332 файла.
Строки имеют несколько значений NA
.Требуется функция для вывода корреляции между Nitrate
и Sulfate
полных случаев для каждого зонда, где полные случаи превышают заданный порог (случаи, в которых не найдено NA
s).
Функция принимает каталог(где находятся файлы) и пороговое значение (количество завершенных дел). Пример:
cr <- corr("specdata", 400)
head(cr)
будет выводить (один вывод на пробу)
# [1] -0.01895754 -0.04389737 -0.06815956 -0.07588814 0.76312884 -0.15782860
summary(cr)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.17623 -0.03109 0.10021 0.13969 0.26849 0.76313
Example2:
cr <- corr("specdata", 5000)
summary(cr)
будет выводить (потому что ни у одного датчика нет более 5000 полных выборок
## Min. 1st Qu. Median Mean 3rd Qu. Max.
##
У меня есть следующий код, который вычисляет корреляцию для всех датчиков, но я не знаю, как кодировать впорог и получить его в векторе, который выводит индивидуальную корреляцию для каждого местоположения зонда.
corr <- function(directory, thresh) {
setwd(directory)
filevector3 <- list.files()
megadata <- do.call('rbind', lapply(filevector3[1:332], read.csv, header = T))
cormega <- cor(megadata$sulfate, megadata$nitrate, use = "complete.obs")
nobs <- c(sum(complete.cases(megadata)))
return(cormega)
}