Я пытаюсь написать функцию с именем complete, которая принимает файловый каталог (в котором есть csv-файлы с именем 1-332) и заголовок файла в виде числа, чтобы распечатать количество строк без NA в сульфате или нитратные колонны. Я пытаюсь использовать mutate для добавления столбца с заголовком nobs, который возвращает 1, если ни один из столбцов не равен na, а затем берет сумму nobs за мой ответ, но я получаю сообщение об ошибке, что объект nob не найден. Как я могу это исправить? Указанный каталог файлов c, о котором идет речь, загружается в этот блок кода.
library(tidyverse)
if(!file.exists("rprog-data-specdata.zip")) {
temp <- tempfile()
download.file("https://d396qusza40orc.cloudfront.net/rprog%2Fdata%2Fspecdata.zip",temp)
unzip(temp)
unlink(temp)
}
complete <- function(directory, id = 1:332){
#create a list of files
files_full <- list.files(directory, full.names = TRUE)
#create an empty data frame
dat <- data.frame()
for(i in id){
dat <- rbind(dat, read.csv(files_full[i]))
}
mutate(dat, nob = ifelse(!is.na(dat$sulfate) & !is.na(dat$nitrate), 1, 0))
x <- summarise(dat, sum = sum(nob))
return(x)
}
Когда выполняется следующий код, nobs должен быть 117, но вместо этого я получаю сообщение об ошибке
complete("specdata", 1)
Ошибка: объект 'nob' не найден "