У меня есть двухпарный вопрос. При создании набора данных, похожий на то, что у меня есть, мы можем начать с Качество воздуха набора данных:R dcast: применение значения/условных исключений к подсчетам
myaqm <- melt(airquality, id=c("Month", "Day"), na.rm = TRUE)
myaqm_dcast <- dcast(myaqm, Day+variable~Month,
value.var = "value", sum, margins=c("Day", "variable", "Month"))
Давать нам это:
> head(myaqm_dcast, n=10)
Day variable 5 6 7 8 9 (all)
1 1 Ozone 41.0 0.0 135.0 39.0 96.0 311.0
2 1 Solar.R 190.0 286.0 269.0 83.0 167.0 995.0
3 1 Wind 7.4 8.6 4.1 6.9 6.9 33.9
4 1 Temp 67.0 78.0 84.0 81.0 91.0 401.0
5 1 (all) 305.4 372.6 492.1 209.9 360.9 1740.9
6 2 Ozone 36.0 0.0 49.0 9.0 78.0 172.0
7 2 Solar.R 118.0 287.0 248.0 24.0 197.0 874.0
8 2 Wind 8.0 9.7 9.2 13.8 5.1 45.8
9 2 Temp 72.0 74.0 85.0 81.0 92.0 404.0
10 2 (all) 234.0 370.7 391.2 127.8 372.1 1495.8
Первый вопрос: Как вы можете удалить Wind от каждой ежедневной (все) под-итого?
Я уверен, что мы должны использовать dplyr
, возможно, целиком вместо dcast
, однако для жизни меня не удается найти пример, демонстрирующий неполные исключения.
Второй вопрос: Точно так же мы и пытаемся выяснить, как включить ежедневный средний ряд всех переменных, за исключением Temp. Таким образом, набор данных будет выглядеть примерно так:
Day variable 5 6 7 8 9 (all)
1 1 Ozone 41.0 0.0 135.0 39.0 96.0 311.0
2 1 Solar.R 190.0 286.0 269.0 83.0 167.0 995.0
3 1 Wind 7.4 8.6 4.1 6.9 6.9 33.9
4 1 Temp 67.0 78.0 84.0 81.0 91.0 401.0
5 1 Day Avg 79.5 98.2 136.0 43.0 90.0 446.6
6 1 (all) 298.0 364.0 488.0 203.0 354.0 1707.0
7 2 Ozone 36.0 0.0 49.0 9.0 78.0 172.0
8 2 Solar.R 118.0 287.0 248.0 24.0 197.0 874.0
9 2 Wind 8.0 9.7 9.2 13.8 5.1 45.8
10 2 Temp 72.0 74.0 85.0 81.0 92.0 404.0
11 2 Day Avg 54.0 98.9 102.1 15.6 93.4 363.9
12 2 (all) 226.0 361.0 382.0 114.0 367.0 1450.0
Здесь день Среднее это среднее Озон, Solar.R и Wind - не включает в себя Temp.
И (все) является суммой Озон, Solar.R и Temp - не включает Wind.
Я думаю, что это еще один случай для dplyr
, и это было бы аналогичным решением, но я думал, что задаю оба вопроса.
Редактировать: Следует упомянуть, что мои данные в реальном мире имеют гораздо больше четырех переменных каждый день, некоторые из которых на самом деле не появляются каждый день, но тем не менее должны быть включены в ежедневную «Дневную Avg», и «(все)» расчеты, так что было бы чище, чтобы исключить переменные по имени (то есть. Temp или Wind), а не имен всех переменных, чем должны быть включены (например. Озон и Solar. R).
Разъяснение: Вы хотите Ветер по-прежнему появляются в резюме, но не быть частью итога? –
Действительно. Ежедневный промежуточный итог представляет собой сумму вклада всего, без ветров. summary() может по-прежнему включать Wind и Temp. –