Итак, я создаю цикл в R, который читает несколько CSV-файлов в каталоге с именем «specdata», а затем сообщает вам среднее значение определенного столбца общего в этих файлах.Эта функция представлена в следующем параграфе. Аргументы, которые вы указываете: каталог, в котором находятся эти файлы, столбец, который вы хотите вычислить, и последовательность идентификаторов, которая сообщает вам, сколько файлов вы хотите прочитать в зависимости от объекта.число, представленное через подмножество []
ЗДЕСЬ ФУНКЦИЯ:
pollutantmean <- function(directory,pollutant,id) {
for (i in id) {archivo <- list.files(directory)[i]
file(archivo[i])
datapollution <- read.csv(archivo[i],header = TRUE)
datamatrix <- data.matrix(datapollution)
mean(datamatrix[pollutant],na.rm = TRUE)}}
проблема в том, что при вызове функции:
pollutantmean("specdata",sulfurate,1:15)
выдает следующую ошибкусообщение:
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
Show Traceback
Rerun with Debug
Error in file(file, "rt") : cannot open the connection
Интересная часть состоит в том, что ошибка не возникает, когда вы вызываете часть функции, которая дает ошибку независимо от функции, например:
file(list.files("specdata")[2])
в этом случае он дает желаемое соединение, позже, когда вы применяете read.csv ("specdata") [2], он также отлично работает.
Итак, вот мой вопрос, что я пропустил?Он должен собирать и читать все файлы так же, как это происходит при включении поднабора [2], но заменяя число 2 соответствующим i, повторяя функцию и делая меня счастливым.Почему это дает ошибку здесь, а не при выполнении поднабора на 2?
Я где-то читал, что мне нужно использовать Rbind, но в любом случае это произойдет после генерации соединения и чтения перечисленных файлов,Мне нужно решить это первое предупреждающее сообщение до этого (не знаю, как бы я это сделал потом ...).
Да, я из Coursera, извините за клише, но я действительно хороший парень, ПОЖАЛУЙСТА, ПОМОГИТЕ:)