J'ai essentiellement un ensemble de données longitudinal et cela inclut 8 vagues de collecte de données. J'ai donc 8 variables d'âge Ce que j'ai essayé de faire est quelque chose comme ça (je connais ça affreux) qui ne fait que des déclarations à dire par exemple dans AGE_1: AGE_8 CODE> et si un participant passe à Wave 1, leur âge est enregistré dans AGE_1 CODE> et sinon sa définie comme na. De même, si les participants sont entrés dans l'étude à Wave 2, leur âge est enregistré dans Age_2 Code> et l'âge de suivi des participants inscrit à la vague précédente (Wave 1) est également enregistré, mais si Le participant entre dans une vague ultérieure (non vague 1 ou 2) leur âge est répertorié comme na. J'espère donc que cela élucide quelque part quelles sont les données. Ce que je veux faire, c'est créer une variable qui enregistre juste l'âge que l'individu est entré dans l'étude. entrée_2 code>, si le age_2 code> (Wave 2 ) Est NA et AGE_1 CODE> n'est pas NA, l'entrée est alors enregistrée comme na, sinon elle prend la valeur enregistrée pour l'âge 2 comme entrée. J'essaie donc de prendre l'âge des individus qui entra dans cette vague particulière et d'exclure tous les âges de suivi des vagues précédentes qui auraient pu être enregistrées. Mais cela ne fonctionne pas car il réplique simplement la variable d'âge comme indiqué dans l'exemple ci-dessous. p>
3 Réponses :
Je pense que cela devrait vous obtenir ce dont vous avez besoin:
first_entry <- function(subj) {
na.omit(subj)[1]
}
age_df <- data.frame(
age_1 = c(NA, NA, 1, NA),
age_2 = c(1, NA, 3, NA),
age_3 = c(2, NA, 4, 4),
age_4 = c(3, 4, 5, 5)
)
age_1 age_2 age_3 age_4
1 NA 1 2 3
2 NA NA NA 4
3 1 3 4 5
4 NA NA 4 5
youngest <- apply(age_df, 1, first_entry)
youngest
[1] 1 4 1 4
na.omit (x) [1] code> est un moyen plus facile d'obtenir une première entrée non manquante d'un vecteur.
@Adamo Bon appel, merci! Édité pour refléter cette suggestion.
Le dernier paragraphe obtient un peu de confusion sur ce que vous recherchez spécifiquement, mais il sera probablement préférable d'utiliser Cela vous donnera 4 colonnes: le participant, qui agit, l'âge de cette vague et si cette vague était l'entrée de ce participant. De là, vous pouvez faire votre analyse, regrouper par vague et is_entry pour obtenir les résumés. P> p> dplyr code> et titsy code> ici pour y accomplir. < PRE> XXX PRE>
Une solution pour l'âge présenté dans un format de données long. est p> pour obtenir p>