0
votes

Comment générer une variable qui enregistre l'entrée dans une étude utilisant une variable d'âge dans un jeu de données longitudinal?

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 AGE_1: AGE_8 et si un participant passe à Wave 1, leur âge est enregistré dans AGE_1 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 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.

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 entrée_2 , si le age_2 (Wave 2 ) Est NA et AGE_1 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. xxx


0 commentaires

3 Réponses :


0
votes

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


2 commentaires

na.omit (x) [1] 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.



0
votes

Le dernier paragraphe obtient un peu de confusion sur ce que vous recherchez spécifiquement, mais il sera probablement préférable d'utiliser dplyr et titsy ici pour y accomplir. < PRE> XXX

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.


0 commentaires

0
votes

Une solution pour l'âge présenté dans un format de données long. xxx

est xxx

pour obtenir xxx


0 commentaires