Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по Data Management
Форум врачей-аспирантов > Разделы форума > Медицинская статистика
jeruzale
Добрый день!
Пишу вам от безысходности - уже 2 недели ищу ответ на мою проблему, но пока не нашел ответа.
Пытался писать сложными формулами в R , но ничего не получилось...

Не могли бы вы помочь?

Я загрузил доц файл, где объяснил свою проблему визуально.

Заранее всем спасибо!
p2004r
Цитата(jeruzale @ 10.07.2012 - 12:56) *
Добрый день!
Пишу вам от безысходности - уже 2 недели ищу ответ на мою проблему, но пока не нашел ответа.
Пытался писать сложными формулами в R , но ничего не получилось...

Не могли бы вы помочь?

Я загрузил доц файл, где объяснил свою проблему визуально.

Заранее всем спасибо!


это делает например пакет plyr

например вот такой страхолюдной формулой в своих данных я намедни извлекал ранг абитуриента в его школе

Код
data.baza<-ddply(data,
                 .(data$Код.УО),
                 function(i) data.frame(i,
                                        ResPhys.UOrank=rank(max(i$ResPhys.ball, na.rm=TRUE)-i$ResPhys.ball,
                                                            ties.method ="min"),
                                        UO.number=nrow(i)))


у Вас ситуация проще

Код
> ddply(table, .(table$ID.worker,table$Year), function(i) colMeans(i))
  table$ID.worker table$Year ID.worker Year Systolic.blood.pressure
1             468       1968       468 1968                   123.0
2             468       1970       468 1970                   120.0
3             500       1985       500 1985                   121.5
4             500       1990       500 1990                   124.0
5             555       1980       555 1980                   125.0
  Diastolic.blood.pressure
1                     88.0
2                     80.0
3                     83.5
4                     87.0
5                     85.0


ps даже проще можно ddply(table, .(table$ID.worker,table$Year), colMeans)

pps или вот так

Код
> ddply(table, .(table$ID.worker,table$Year), function(i) colMeans(i[,3:4]))
  table$ID.worker table$Year Systolic.blood.pressure Diastolic.blood.pressure
1             468       1968                   123.0                     88.0
2             468       1970                   120.0                     80.0
3             500       1985                   121.5                     83.5
4             500       1990                   124.0                     87.0
5             555       1980                   125.0                     85.0

> aggregate(table[,3:4], list(table$ID.worker,table$Year), mean)
  Group.1 Group.2 Systolic.blood.pressure Diastolic.blood.pressure
1     468    1968                   123.0                     88.0
2     468    1970                   120.0                     80.0
3     555    1980                   125.0                     85.0
4     500    1985                   121.5                     83.5
5     500    1990                   124.0                     87.0
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.