Erreur dans dataframe *tmp* remplacement de données x a y
Je suis un débutant dans R. Voici un code très simple où je suis en train d'essayer de sauver la durée de vie résiduelle:
# Create variables for child's EA:
dat$cldeacdi <- rowMeans(dat[,c('cdcresp', 'cdcinv')],na.rm=T)
dat$cldeacu <- rowMeans(dat[,c('cucresp', 'cucinv')],na.rm=T)
# Create a residual score for child EA:
dat$cldearesid <- resid(lm(cldeacu ~ cldeacdi, data = dat))
J'obtiens le message suivant:
Error in `$<-.data.frame`(`*tmp*`, cldearesid, value = c(-0.18608488908881, :
replacement has 366 rows, data has 367
J'ai cherché pour cette erreur, mais ne pouvais pas trouver quelque chose qui pourrait résoudre ce problème. En outre, j'ai créé exactement le même code pour la maman de l'EA, et il a sauvé le résiduel très bien, avec pas d'erreurs. Je serais reconnaissant si quelqu'un pouvait m'aider à résoudre ce problème.
OriginalL'auteur Marishka Usacheva | 2017-11-10
Vous devez vous connecter pour publier un commentaire.
J'ai le sentiment que vous avez
NA
s dans vos données. Regardez cet exemple:Comme vous pouvez le voir il en résulte une erreur similaire à la vôtre.
Comme une validation:
Cela se produit parce que
lm
sera exécuténa.omit
sur l'ensemble de données avant l'exécution de la régression, donc si vous avez des lignes avec NA ces seront supprimées résultant en moins de résultats.Si vous exécutez
na.omit
sur votredat
ensemble de données (c'est à diredat <- na.omit(dat)
au début de votre code, puis votre code devrait fonctionner.Heureux de vous aider. N'hésitez pas à accepter si cela a aidé.
En fait, je viens de remarquer que quand je lance na.omettre efface mon ensemble de données, comme dans - 0 observations de mes variables... Pourquoi est-ce?
na.omit
va supprimer la rangée complète de données.cadre si il y a au moins une colonne de la rangée avec unNA
.lm
le fait aussi que depuis qu'il appellena.omit
en interne. Assurez-vous d'exclure les colonnes que vous n'avez pas besoin à la régression avant d'exécuterna.omit
.OriginalL'auteur LyzandeR