J'ai un ensemble de données d'admission à l'hôpital que je dois traiter, je suis bloqué en essayant de boucler les données et ramasser les trucs que je besoin, voici l'exemple:traitement des données d'admission à l'hôpital en utilisant R
Date Ward
1 A
2 A
3 A
4 A B
5 A
6 A
7 A C
8 C
9 C
10 C
Et je leur dois être transformé en:
Ward Adm_Date Dis_Date
A 1 4
B 4 4
A 4 7
C 7 10
pour le mettre dans la phrase, c'est un dossier d'admission du patient X qui:
- aller au service A du jour 1 au jour 4
- aller au service B (peut-être un service de soins intensifs) pendant moins d'un jour le jour 4, et retourner au service A ce jour
- rester dans le service A du jour 4 au jour 7
- mouvement pour éloigner C de service A partir du jour 7 et de rester dans le quartier C jusqu'à ce jour 10
Je pense à l'aide ddply
en filtrant la salle, mais il n'est pas correct puisque B sera "omis" et la période de temps pour A n'est pas décomposée en 2 parties.
Des suggestions? Merci!
Quelle est ici la variable 'Ward'? Une chaîne de caractères? À quel point cela peut-il être complexe - plus de deux services par jour? Si vous aviez trois codes de salle - disons «A D F» où vous avez «A B», comment sauriez-vous si le patient est allé en D ou F en premier? Est ce que c'est important? C'est faisable mais pourrait juste avoir besoin d'une boucle de suivi de l'endroit où le patient est à chaque itération. En outre, ce n'est pas le lupus. – Spacedman
ward est une chaîne de caractères, et je ne pense pas qu'il puisse y avoir plus de 2 salles par jour, et oui, ce n'est pas le lupus. ;) actuellement j'utilise ddply et loop pour cela, mais c'est un peu lent (j'ai des dossiers d'admission de 8000 patients du 1/1/2009 au 31/9/2010) – lokheart
En esquissant une réponse il y a une ambiguïté dans vos données que j'ai trouvé quand ma solution ne correspondait pas à la vôtre! Vous dites que si le code est "A B" puis "A" alors ils sont dans B pour moins d'un jour. Mais que se passe-t-il s'ils sont dans B pendant exactement un jour? Serait-il alors "A" "B" "A"? Le problème que j'ai dans mon code est que vous ne savez pas si le patient revient à "A" quand vous voyez "A B" jusqu'à ce que vous vérifiez l'enregistrement suivant. Et cela affecte le code, parce que vos données d'admission pour A dans la ligne 3 de votre sortie sont 4, et non 5 ce qui est ce que je m'attendrais ... Peut-être que c'est le lupus. – Spacedman