Не удается получить полностью наблюдаемые случаи в каждом файле данных - PullRequest
0 голосов
/ 12 января 2019

Вопрос заключается в том, чтобы я написал функцию, которая считывает каталог, полный файлов, и сообщает о количестве полностью наблюдаемых случаев в каждом файле данных. Мой код работает для чтения данных, но не удалось получить число пропущенных значений для каждого файла данных. Он возвращает только один случай для всех 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 Ответ

0 голосов
/ 13 января 2019

Инициировать пустой кадр данных вне цикла:

dFrame <- data.frame()

А затем, в цикле, свяжите его с собой + новый ряд:

dFrame <- rbind(
  dFrame, 
  data.frame(id = i, nobs = sum(complete.cases(hwData)))
)

Обратите внимание, что необходимо присвоить переменной цикла i идентификатору. Проверьте это решение и дайте мне знать, если оно работает.

...