J'ai un ensemble de données de longueur et de hauteur pour les coques, mais certaines années, la hauteur n'a pas été enregistrée. J'essaie d'utiliser une régression linéaire des années de données où la taille et la longueur ont été enregistrées afin de générer des hauteurs pour les années avec NA. En plus de cela, je veux faire cette régression pour chacun de mes domaines d'évaluation.Régression de boucle Lm et remplacement NAs
Jusqu'ici c'est ce que j'ai;
for(a in unique(all_data$Assessment_area)) {
r1 <- lm(Height_t2~Length_t2,data=all_data[!is.na(all_data$Height_t2)&all_data$Assessment_area==a,]) #Regression model for all shells with L&H
print(a)
print(r1)
}
qui me donne la sortie que j'ai besoin pour chaque domaine d'évaluation (que je puis insérer dans le code ci-dessous et à savoir 0,8871 0,5143 mais pour le moment, un par un). Le prochain bit de mon code crée une nouvelle colonne comme suit, où je tapais à chaque fois les valeurs générées. Y a-t-il un moyen d'incorporer ces lignes dans la boucle précédente?
all_data$Height_r1 <- all_data$Length_t2*0.8871+0.5143 #Apply regression relationship to new column
all_data$Height_r1[!is.na(all_data$Height_t2)] <-all_data$Height_t2[!is.na(all_data$Height_t2)] #Add original heights
Toute aide appréciée
Qu'est-ce que 08871 et 0.5143? Est-ce le résultat du lm à l'étape précédente? – bsg
Oui mais il y a 5 zones d'évaluation donc il y a 5 ensembles de résultats, donc je dois aussi spécifier de ne remplacer que les valeurs de hauteur pour chaque zone d'évaluation en utilisant la régression calculée pour cette zone. Auparavant, lorsque j'ai utilisé ce code, je viens d'utiliser une seule équation de régression pour toutes les coquilles, mais je pense qu'il serait plus exact d'avoir des régressions d'échelle régionale/assessment_area. –