У меня есть набор госпитализация данных, что мне нужно обрабатывать, я застрял при попытке цикла данные и подобрать материал, который мне нужен, вот пример:обработка данных больницы приема с использованием 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
И мне нужно, чтобы они были преобразованы в:
Ward Adm_Date Dis_Date
A 1 4
B 4 4
A 4 7
C 7 10
Выражаясь в предложении, это прием запись пациента X, который:
- перейдите в палату А с 1-го по 4-й день
- перейдите в палату В (возможно, это отделение отделения интенсивной терапии) менее суток в день 4 и вернитесь в палату А в этот день
- пребывание в палате А с 4-го дня 7-го дня
- шаг, чтобы предотвратить C от прихода а с 7-го дня и пребывание в палате C до дня 10
Я имею в виду использование ddply
путем фильтрации подопечного, но не в порядке, так как B будет «опущен», и период времени для A не разбивается на 2 части.
Любые предложения? Благодаря!
Что переменная 'Ward' здесь? Строка символов? Насколько сложно это получить - более двух подопечных в день? Если у вас было три кода охраны - скажем, «A D F», где у вас есть «A B», как вы узнаете, первым ли пациент отправился в D или F? Это имеет значение? Это выполнимо, но может потребоваться только цикл, отслеживающий, где находится пациент на каждой итерации. Кроме того, это не волчанка. – Spacedman
ward - это символьная строка, и я не думаю, что в день может быть больше двух подопечных, и да, это не волчанка. ;) В настоящее время я использую ddply и loop для этого, но он довольно медленный (у меня есть записи регистрации 8000 пациентов с 01.01.2009 по 31.09.2010) – lokheart
Во время наброса ответа есть двусмысленность в ваших данных что я нашел, когда мое решение не совсем соответствовало вашим требованиям! Вы говорите, что если код «A B», а затем «A», то они находятся в B менее одного дня. Но что, если они находятся в Б ровно за один день? Затем будет ли он «A» «B» «A»? Проблема, которую я испытываю в своем коде, заключается в том, что вы не знаете, возвращается ли пациент к «А», когда вы видите «A B», пока не проверите следующую запись. И это влияет на код, потому что ваши данные для входа в A в строке 3 вашего вывода составляют 4, а не 5, что я бы ожидал .... Возможно, это волчанка. – Spacedman