Суммируйте несколько средств и сд в длинном формате, используя dplyr - PullRequest
0 голосов
/ 11 марта 2020

У меня проблемы с суммированием данных в длинный формат для упрощения оценки в ggplot.

data <- data.frame (id  = c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5),
                rep = c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3),
                value1 = sample(1:100, 15, replace=TRUE),
                value2 = sample(1:100, 15, replace=TRUE),
                value3 = sample(1:100, 15, replace=TRUE))

Предположим, этот набор данных. Я хочу сгруппировать по идентификатору и суммировать среднее и SD для значения1, значения2 и значения 3 в длинном формате. SD и среднее значение для каждого идентификатора должны быть в одной строке

library(dplyr)
summary <- data %>%
  group_by(id)%>%
  summarise(mn = mean(value1),
            sd = sd(value1))%>%
  mutate(type = "Value1")%>%
  group_by(id)%>%
  summarise(mn = mean(value2),
            sd = sd(value2))%>%
    mutate(type = "Value2")

Если я сделаю это так, он перезапишет значения, которые он рассчитал ранее. Как мне добавить их вместо того, чтобы перезаписать их?

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

1 Ответ

1 голос
/ 11 марта 2020

Не уверен, что это то, что вы хотели, но поскольку вы упомянули long form:

data <- data.frame (id  = c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5),
                rep = c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3),
                value1 = sample(1:100, 15, replace=TRUE),
                value2 = sample(1:100, 15, replace=TRUE),
                value3 = sample(1:100, 15, replace=TRUE))


library(dplyr)
library(tidyr)
summary <- data %>%
  pivot_longer(c(-id, -rep), names_to = "type") %>% 
  group_by(id, type)%>%
  summarise(mn = mean(value),
            sd = sd(value))

, сводка теперь:

      id type      mn    sd
   <dbl> <chr>  <dbl> <dbl>
 1     1 value1  39.3 22.1 
 2     1 value2  27.7 23.0 
 3     1 value3  15   10.4 
 4     2 value1  88.7 12.1 
 5     2 value2  31.7 25.0 
 6     2 value3  44.7 44.2 
 7     3 value1  48.7 27.3 
 8     3 value2  53   36.7 
 9     3 value3  50.3 10.2 
10     4 value1  34   20.2 
11     4 value2  44.7 10.7 
12     4 value3  21    4.58
13     5 value1  59   29.6 
14     5 value2  61.7 15.9 
15     5 value3  12.3 14.7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...