Нужно создать функцию pollutantmean <- function(directory, pollutant, id = 1:332) {
которая будет вычислять из данных файлов среднее (sulfate или nitrate) в любом из файлов (Содержимое файлов - Картинка 0).
Функция должна использовать 3 аргумента 'directory', 'pollutant', and 'id'
Функция должна возвращать данные (Пример на Картинке 1) в зависимости от того что запрашивается sulfate или nitrate
Один знающий человек подсказал такую логику, но сам он теперь недоступен.
ВОПРОС: Как подключить этот код к паке с файлами?
Может кто знает проще решение?
pollutantmean <- function(directory, pollutant, id = 1:332) {
csvFiles = getFilesById(id, directory)
dataFrames = readMultipleCsvFiles(csvFiles)
dataFrame = bindMultipleDataFrames(dataFrames)
getColumnMean(dataFrame, column = pollutant)
getFilesById <- function(id, directory = getwd()) {
allFiles = list.files(directory)
file.path(directory, allFiles[id])
}
readMultipleCsvFiles <- function(csvFiles) {
lapply(csvFiles, read.csv)
}
bindMultipleDataFrames <- function(dataFrames) {
Reduce(function(x, y) rbind(x, y), dataFrames)
}
getColumnMean <- function(dataFrame, column, ignoreNA = TRUE) {
mean(dataFrame[ , column], na.rm = ignoreNA)
}
}
которая будет вычислять из данных файлов среднее (sulfate или nitrate) в любом из файлов (Содержимое файлов - Картинка 0).
Функция должна использовать 3 аргумента 'directory', 'pollutant', and 'id'
Функция должна возвращать данные (Пример на Картинке 1) в зависимости от того что запрашивается sulfate или nitrate
Один знающий человек подсказал такую логику, но сам он теперь недоступен.
ВОПРОС: Как подключить этот код к паке с файлами?
Может кто знает проще решение?
pollutantmean <- function(directory, pollutant, id = 1:332) {
csvFiles = getFilesById(id, directory)
dataFrames = readMultipleCsvFiles(csvFiles)
dataFrame = bindMultipleDataFrames(dataFrames)
getColumnMean(dataFrame, column = pollutant)
getFilesById <- function(id, directory = getwd()) {
allFiles = list.files(directory)
file.path(directory, allFiles[id])
}
readMultipleCsvFiles <- function(csvFiles) {
lapply(csvFiles, read.csv)
}
bindMultipleDataFrames <- function(dataFrames) {
Reduce(function(x, y) rbind(x, y), dataFrames)
}
getColumnMean <- function(dataFrame, column, ignoreNA = TRUE) {
mean(dataFrame[ , column], na.rm = ignoreNA)
}
}
К сообщению приложены файлы: