![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 2 Регистрация: 5.02.2012 Пользователь №: 23468 ![]() |
Добрый день!
Пишу вам от безысходности - уже 2 недели ищу ответ на мою проблему, но пока не нашел ответа. Пытался писать сложными формулами в R , но ничего не получилось... Не могли бы вы помочь? Я загрузил доц файл, где объяснил свою проблему визуально. Заранее всем спасибо!
Прикрепленные файлы
|
|
![]() |
![]() |
![]()
Сообщение
#2
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
Добрый день! Пишу вам от безысходности - уже 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 Сообщение отредактировал p2004r - 10.07.2012 - 14:17 ![]() |
|
![]() |
![]() |
![]() ![]() |