посмотрим, смогу ли я немного помочь.Трудно понять, как выглядят ваши данные из информации, которую вы нам предоставили.Так что я собираюсь угадать и сделать некоторые фальшивые данные для нас, чтобы поиграть.Стоит отметить, что наличие имен полей с пробелами сделает вашу жизнь по-настоящему сложной.Вы должны начать с переименования ваших полей во что-то более управляемое.Поскольку я просто создаю данные, я буду называть имена моих полей без пробелов:
library(tidyverse)
## this makes some fake data
## a data frame with 3 fields: month, team, value
n <- 100
specificreportsLocal <-
data.frame(
month = sample(1:12, size = n, replace = TRUE),
team = letters[1:5],
value = sample(1:100, size = n, replace = TRUE)
)
Это просто фрейм данных с именем specificreportsLocal
с тремя полями: month
, team
, value
Давайте сделаем с этим кое-что:
# This will give us total values by team when month = 10
specificreportsLocal %>%
filter(month == 10) %>%
group_by(team) %>%
summarize(total_value = sum(value))
#> # A tibble: 4 x 2
#> team total_value
#> <fct> <int>
#> 1 a 119
#> 2 b 172
#> 3 c 67
#> 4 d 229
Я думаю, это похоже на то, что вы уже сделали, за исключением того, что я добавил резюме, чтобы показать, как это работает.
Теперь давайте используем все месяцы и меняем их с «длинных» на «широкие»
# if I want to see all months I leave out the filter and
# add a group_by month
specificreportsLocal %>%
group_by(team, month) %>%
summarize(total_value = sum(value)) %>%
head(5) # this just shows the first 5 values
#> # A tibble: 5 x 3
#> # Groups: team [1]
#> team month total_value
#> <fct> <int> <int>
#> 1 a 1 17
#> 2 a 2 46
#> 3 a 3 91
#> 4 a 4 69
#> 5 a 5 83
# to make this 'long' data 'wide', we can use the `spread` function
specificreportsLocal %>%
group_by(team, month) %>%
summarize(total_value = sum(value)) %>%
spread(team, total_value)
#> # A tibble: 12 x 6
#> month a b c d e
#> <int> <int> <int> <int> <int> <int>
#> 1 1 17 122 136 NA 167
#> 2 2 46 104 158 94 197
#> 3 3 91 NA NA NA 11
#> 4 4 69 120 159 76 98
#> 5 5 83 186 158 19 208
#> 6 6 103 NA 118 105 84
#> 7 7 NA NA 73 127 107
#> 8 8 NA 130 NA 166 99
#> 9 9 125 72 118 135 71
#> 10 10 119 172 67 229 NA
#> 11 11 107 81 NA 131 49
#> 12 12 174 87 39 NA 41
Created on 2018-12-01 by the reprex package (v0.2.1)
Теперь я не совсем уверен, хотите ли вы этого.Поэтому не стесняйтесь комментировать этот ответ, если вам нужно что-либо разъяснить.
Добро пожаловать в переполнение стека!