2014-12-14 1 views
0

Я хочу получить число полных случаев для данного фрейма данных и показать их в виде кадр данных с id и nobs (количество полных случаев для определенного id) в виде столбцов. До сих пор я получил ответ на идентификаторы, которые представляют собой одиночные числа, такие как 10, 23, 45 и т. Д., Но для набора чисел, таких как c (2,3,4,5), но я получаю сумму всех длин каждого числа в во время печати для всех номеров. Поэтому я хочу знать, где происходит ошибка. Ниже мой код.Чтобы найти количество полных случаев в кадре данных и создать новый кадр данных с количеством таких полных случаев из каждого файла

`complete <- function(directory, id = 1:332){ 

file_list <- list.files(directory, full.names=TRUE) 

tmp <- vector(mode = "list", length = length(file_list)) 
for (i in seq_along(file_list)) { 
tmp[[i]] <- read.csv(file_list[[i]]) 
} 
output <- do.call(rbind, tmp) 

complete <- output[complete.cases(output),] 


d<-data.frame(id,nobs=length(which(complete[,"ID"] %in% id))) 
d 
    }` 

Благодаря

+0

Когда вы используете 'do.call (rbind, tmp)' вы связываете * все таблицы, прочитанные до сих пор * вместе. Таким образом, количество строк в 'output' - это общее количество строк (исключая неполные случаи). – jlhoward

+0

Разве это не вопрос Курсеры? – A5C1D2H2I1M1N2O1R2T1

+0

@ananda да, вы тоже занимаетесь курсом? –

ответ

0

Это не тестировался, так что на самом деле принадлежит комментарий, но это только немного слишком долго.

Попробуйте это:

## not tested 
directory <- "...directory with your files..." 
nobs <- sapply(list.files(directory, full.names=TRUE), 
       function(file) sum(complete.cases(read.table(file)))) 
result <- data.frame(id=seq_along(nobs),nobs) 

У меня есть ощущение, что это произведет результат, который вы хотите с гораздо меньшим количеством кода.

+0

Привет, спасибо за код, но когда я запустил его, он не получил желаемый результат. Результат, который я хочу, - это число полных случаев относительно идентификатора. У меня есть пример результатов (https://d396qusza40orc.cloudfront.net/rprog%2Fdoc%2Fcomplete-demo.html). Из моего кода я получил результаты для одиночных чисел, но не для набора чисел, я чувствую, что есть какая-то проблема при формировании моего data.frame, или я должен запускать цикл .... Я застрял с ним. –

Смежные вопросы