Erreur dans la Trame de Données: arguments impliquent nombre différent de lignes

En dépit de lire les questions /réponses à propos de cette Erreur, je ne sais toujours pas comment résoudre ce problème dans mon cas particulier.

- Je obtenir la somme de compléter les cas dans une liste de fichiers. Chaque fichier (par exemple, fichier1 correspond à un id (e.g id1 pour fichier1). Mon objectif est d'obtenir un bloc de données avec le nombre de cas pour chaque id (donc pour chaque fichier, comme fichier1 contient les polluants de id1, et fichier2 contient les polluants de id2 et ainsi de suite)

Quand je lance la fonction: complete("pollu", 1:10) --> tout fonctionne parfaitement

Mais lorsque j'exécute les fonctions:

 complete("pollu", 34)

Je obtenir l'ID 34 fois, avec 33 fois le retour NA et enfin de retourner le nombre de cas.

 complete(".", c(2, 4, 8, 10, 12)) 

J'obtiens l'erreur:

Une erreur dans les données.cadre(id, nobs) : arguments impliquent nombre différent de
lignes: 5, 12

Toute aide sur la compréhension de l'erreur et de la fixation des il serait appréciée.

complete <- function(directory,id=1:332) {
  nobs <- vector()
  files <- list.files(directory)

  for (i in id) {
    ID <- id
    file <- read.csv(files[i])
    nobs[i] <- sum(complete.cases(file),na.rm = TRUE)

}

df <- data.frame(ID,nobs)
colnames(df) <- c("ID", "nobs")
return (df)

}

InformationsquelleAutor Kathia | 2017-05-02