Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

> Помогите, пожалуйста, написать алгоритм для R
Olga_
сообщение 29.08.2012 - 12:02
Сообщение #1





Группа: Пользователи
Сообщений: 43
Регистрация: 4.01.2012
Пользователь №: 23400



Добрый день.

Помогите, пожалуйста, написать алгоритм для R.
У меня две базы данных, одна из них включает номер пациента, дату каждого измерения (как правило, измерение проводилось в среднем каждуjу неделю в течении 1 года ) и номер недели (1,2,3...54), вторая база включает информацию о ежедневной температуре воздуха.

Задача: нужно посчитать среднюю температуру, предшествующую каждому измерению. Например, для первой недели нужно рассчитать среднюю темп за 7 дней до измерения (28apr1999-7дней), для второй недели за период 28apr1999-07may1999 и т.д.
FID studydate week
1 28apr1999 1
1 07may1999 2
1 14may1999 3
1 21may1999 4


Second dataset
temp date
5.37 1999-04-20
2.13 1999-04-21
1.6 1999-04-22
-0.17 1999-04-23
2.53 1999-04-24


Спасибо!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
 
Открыть тему
Ответов
Olga_
сообщение 9.11.2012 - 00:32
Сообщение #2





Группа: Пользователи
Сообщений: 43
Регистрация: 4.01.2012
Пользователь №: 23400



У меня time series data с нерегулярными интервалами времени. Я хочу организовать мои данные таким образом, чтобы каждый пациент имел 1 измерение в неделю, в среднем у каждого пациента было 52 измерения, то есть каждую неделю в течении года. Поэтому встречаюся повторные измерения в один и тот же день (исследовали сразу несколько пациентов).
id stday week
1 28apr1999 1
1 07may1999 2
1 14may1999 3
1 21may1999 4
1 27may1999 5
1 04jun1999 6
1 11jun1999 7
1 18jun1999 8
1 25jun1999 9
1 02jul1999 10
1 09jul1999 11
1 16jul1999 12
1 23jul1999 13
1 30jul1999 14
1 06aug1999 15

Конечные данные должны выглыдеть так
id week day
1 1 25.04.99
1 2 02.05.99
1 3 09.05.99
1 4 16.05.99
1 5 23.05.99
1 6 30.05.99
1 7 06.06.99
1 8 13.06.99
1 9 20.06.99
1 10 27.06.99
1 11 04.07.99
1 12 11.07.99
1 12 11.07.99
2 12 11.07.99
6 12 11.07.99
9 12 11.07.99
Здесь каждый пациент имел и измерение каждое воскресение, данные были организованы в matlab, которого у меня на данный момент нет, да и как работать в матлабе имею смутное представление..

na.approx функция для пропущенных значений.



Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 9.11.2012 - 12:57
Сообщение #3





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Ха, какой тонкий тролинг smile.gif

не говорим попусту, а читаем.
Код
## using na.approx for disaggregation
     zy <- zoo(1:3,  2000:2001)
    
     # yearly to monthly series
     zmo <- na.approx(zy, xout = as.yearmon(2000+0:13/12))
     zmo
    
     # monthly to daily series
     sq <- seq(as.Date(start(zmo)), as.Date(end(zmo), frac = 1), by = "day")
     zd <- na.approx(zmo, x = as.Date, xout = sq)
     head(zd)
    
     # weekly to daily series
     zww <- zoo(1:3, as.Date("2001-01-01") + seq(0, length = 3, by = 7))
     zww
     zdd <- na.approx(zww, xout = seq(start(zww), end(zww), by = "day"))
     zdd


и
Код
# using na.approx to create regularly spaced series
     # z has points at 10, 20 and 40 minutes while output also has a point at 30
     if(require("chron")) {
       tt <- as.chron("2000-01-01 10:00:00") + c(1, 2, 4) * as.numeric(times("00:10:00"))
       z <- zoo(1:3, tt)
       tseq <- seq(start(z), end(z), by = times("00:10:00"))
       na.approx(z, xout = tseq)
     }




Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

Сообщений в этой теме
- Olga_   Помогите, пожалуйста, написать алгоритм для R   29.08.2012 - 12:02
- - p2004r   Цитата(Olga_ @ 29.08.2012 - 12:02) Д...   29.08.2012 - 16:37
- - Olga_   Спасибо! У меня вопрос, почему к(width of mov...   29.08.2012 - 18:43
|- - p2004r   Цитата(Olga_ @ 29.08.2012 - 18:43) С...   29.08.2012 - 20:57
|- - Olga_   Цитата(p2004r @ 29.08.2012 - 19:57) ...   29.08.2012 - 21:17
||- - p2004r   Цитата(Olga_ @ 29.08.2012 - 21:17) П...   30.08.2012 - 10:44
||- - Olga_   Цитата(p2004r @ 30.08.2012 - 09:44) ...   30.08.2012 - 12:02
||- - p2004r   Цитата(Olga_ @ 30.08.2012 - 12:02) И...   30.08.2012 - 15:37
||- - Olga_   Цитата(p2004r @ 30.08.2012 - 14:37) ...   30.08.2012 - 16:10
||- - p2004r   Цитата(Olga_ @ 30.08.2012 - 16:10) Н...   30.08.2012 - 19:50
||- - Olga_   Цитата(p2004r @ 30.08.2012 - 18:50) ...   30.08.2012 - 21:16
|- - Olga_   ---   29.08.2012 - 21:17
- - Olga_   Что то у меня не получается.. Мой код airpolluti...   11.09.2012 - 11:50
|- - p2004r   ну а файлы данных запаковать в rar и выложить?   12.09.2012 - 12:30
- - Olga_   Решили оставить вариант с уровнем полютантов за пр...   6.11.2012 - 18:08
|- - p2004r   Цитата(Olga_ @ 6.11.2012 - 18:08) Ре...   7.11.2012 - 21:49
- - Olga_   Спасибо, я уже сама нашла и создала искусственные ...   7.11.2012 - 22:10
|- - p2004r   Цитата(Olga_ @ 7.11.2012 - 22:10) Сп...   8.11.2012 - 21:18
- - Olga_   Временной ряд уже создан, это все те же данные FID...   8.11.2012 - 22:30
|- - p2004r   Цитата(Olga_ @ 8.11.2012 - 22:30) Вр...   8.11.2012 - 23:33
- - Olga_   У меня time series data с нерегулярными интервалам...   9.11.2012 - 00:32
- - p2004r   Ха, какой тонкий тролинг не говорим попусту, а ч...   9.11.2012 - 12:57


Добавить ответ в эту темуОткрыть тему