“Erreur 1:ncol(x) : l'argument de la longueur de 0” lors de l'utilisation d'Amelia dans la R

Je suis en train de travailler avec des données de panel. J'ai bien plus de 6 000 pays-observations année, et ont précisé que mon Amelia imputation comme suit:

(CountDependentVariable, m=5, ts="year", cs="cowcode", 
                sqrts=c("OtherCountVariable2", "OtherCount3", "OtherCount4"),
                ords=c("OrdinalVar1", "Ordinal Variable 2"), 
                lgstc=c("ProportionVariale"),
                noms=c("NominalVar1"),p2s = 0, idvars = c("country"))

Quand je lance ces lignes de code, je continue de recevoir le message d'erreur suivant:

Error in 1:ncol(x) : argument of length 0

J'ai vu des gens obtenir une erreur similaire, mais dans des contextes différents. Surtout, il existe plusieurs continues variables indépendantes, j'ai laissé de côté de l'Amelia code, parce que je suis sous l'impression qu'ils obtiennent imputé SANS avoir à le faire. Personne ne sait:

1) Ce que cette erreur signifie?
2) Comment corriger cette erreur?

Mise à jour #1: Fourni plus de contexte, en termes de types de variables dans mon décompte de données de panel, dans l'exemple de code ci-dessus.

Mise à jour #2: j'ai fait quelques recherches, et a couru dans un R fichier contenant une fonction le diagnostic erreurs possibles pour Amelia code. Après l'exécution du code, j'ai obtenu le message d'erreur suivant d'abord (et beaucoup plus par la suite):

AMn<-nrow(x)
Error in nrow(x) : object 'x' not found
AMp<-ncol(x)
Error in ncol(x) : object 'x' not found
subbedout<-c(idvars,cs,ts)
Error: object 'idvars' not found

Error Code: 4
if (any(colSums(!is.na(x)) <= 1)) {
all.miss <- colnames(x)[colSums(!is.na(x)) <= 1]
if (is.null(all.miss)) {
all.miss <- which(colSums(!is.na(x)) <= 1)
  }
all.miss <- paste(all.miss, collapse = ", ")
error.code<-4
error.mess<-paste("The data has a column that is completely missing or only has one,observation.  Remove these columns:", all.miss)
return(list(code=error.code,mess=error.mess))
}
Error in is.data.frame(x) : object 'x' not found

Error codes: 5-6
Errors in one of the list variables
idout<-listcheck(idvars,"One of the 'idvars'")
Error in identical(vars, NULL) : object 'idvars' not found

Actuellement, il n'existe pas de valeurs manquantes pour la variable du pays que je place dans le idvars argument. Toutefois, le premier "morceau" d'erreurs veut me faire croire que c'est le cas.

Ne suis-je pas correctement la spécification de l'Amelia code que j'ai ci-dessus?

  • Cela signifie probablement que x est effectivement zéro vecteur de longueur quelconque. Mais au-delà, il est presque impossible pour quiconque de débogage pour vous sans accès à vos données. Si nous ne pouvons pas exécuter votre code et de produire la même erreur, c'est assez dur pour être d'une grande aide.
  • Lire à propos de la façon de déboguer les erreurs et ensuite de modifier une question à fournir des informations plus détaillées basées sur ce que vous trouvez.
  • Sans voir plus, je dirais que vous frapper d'un bug dans la fonction que vous appelez. Voir 1:nrow(x) (ou 1:ncol(x)) est généralement un bug dans la R code, bien qu'il fonctionne la plupart du temps. Vous êtes généralement beaucoup mieux avec une instruction comme seq_len(NROW(x)) de plus de 1:nrow(x), ce qui élimine les deux bugs à la fois (1) NUL x, et (2) not null, mais 0-ligne x.
  • Je courrais options(error = recover) avant l'appel de la fonction, de sorte que vous pouvez inspecter l'environnement droit où l'erreur se produit et la figure it out sur votre propre.
InformationsquelleAutor ealfons1 | 2013-08-31