Не удается получить полностью наблюдаемые случаи в каждом файле данных
Вопрос состоит в том, чтобы попросить меня написать функцию, которая считывает каталог, полный файлов, и сообщает о количестве полностью наблюдаемых случаев в каждом файле данных. Мой код работает для чтения данных, но не удалось получить число пропущенных значений для каждого файла данных. Он возвращает только один случай для всех 332 файлов.
Я думаю, что проблема может быть в том, что я получаю только последний завершенный случай вместо всех. Но я не знаю, какой метод мне следует использовать с точки зрения моего кода.
complete<-function(directory, id=1:332){
directory<-setwd("/Users/apple/Desktop/R coursera/specdata")
hwData<-numeric()
for (i in id){
if (i<100 & i>=10){
hwData<-read.csv(paste("0",as.character(i), ".csv",sep = ""), header = TRUE, sep = "", na.strings = c("NA","NAN"," "))
}
else if (i<10){
hwData<-read.csv(paste("0","0",as.character(i),".csv",sep = ""), header = TRUE, sep = "", na.strings = c("NA","NAN"," "))
}
else{
hwData<-read.csv(paste(as.character(i),".csv",sep = ""),header=TRUE,sep = "", na.strings = c("NA","NAN"," "))
}
nobs<-sum(complete.cases(hwData))
dFrame<-data.frame(id,nobs=rbind(sum(complete.cases(hwData))))
}
return(dFrame)
}
I got:
> complete("specdata",30:25)
id nobs
1 30 3287
2 29 3287
3 28 3287
4 27 3287
5 26 3287
6 25 3287
1 ответ
Инициируйте пустой фрейм данных вне цикла:
dFrame <- data.frame()
И затем, в цикле, свяжите это с собой + новый ряд:
dFrame <- rbind(
dFrame,
data.frame(id = i, nobs = sum(complete.cases(hwData)))
)
Обратите внимание, что вы должны назначить переменную цикла i
к ид. Проверьте это решение и дайте мне знать, если оно работает.