Совокупность графиков с несколькими столбцами и несколькими переменными - PullRequest
0 голосов
/ 15 января 2019

Попытка построить агрегированные данные из следующих данных.

  Person  Time Period Value  SMA2  SMA3  SMA4
   <chr>  <dbl>  <dbl> <dbl> <dbl> <dbl> <dbl>
 1 A          1      1    14  NA    NA    NA  
 2 A          2      1     8  11    NA    NA  
 3 A          3      1    13  10.5  11.7  NA  
 4 A          4      1    12  12.5  11    11.8
 5 A          5      1    19  15.5  14.7  13  
 6 A          6      1     9  14    13.3  13.2
 7 A          7      2    14  NA    NA    NA  
 8 A          8      2     7  10.5  NA    NA  
 9 A          9      2    11   9    10.7  NA  
10 A         10      2    14  12.5  10.7  11.5
# ... with 26 more rows

Я использовал aggregate(DataSet[,c(4,5,6,7)], by=list(DataSet$Person), na.rm = TRUE, max), чтобы получить следующее:

  Group.1 Value SMA2     SMA3  SMA4
1       A    20 18.0 16.66667 15.25
2       B    20 17.0 16.66667 15.00
3       C    19 18.5 14.33333 14.50

Я бы хотел построить максимумы для каждой SMA для Лица A, B и C на одном графике.

Я также хотел бы иметь возможность построить среднее значение этих максимумов для каждого столбца SMA.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 15 января 2019

Как так? Или вы ищете что-то другое?

df <- data.frame("Group.1"=c("A","B","C"), "Value"=c(20,20,20), 
                 "SMA2"=c(18.0, 17.0, 18.5), "SMA3" =c(16.667, 16.667, 14.333), 
                 "SMA4"=c(15.25, 15.00, 14.50))

library(ggplot2)
library(tidyr)

df.g <- df %>%
  gather(SMA, Value, -Group.1)

df.g$SMA <- factor(df.g$SMA, levels=c("Value", "SMA2", "SMA3", "SMA4"))

means <- df.g %>%
  group_by(SMA) %>%
  summarise(m=mean(Value))

ggplot(df.g, aes(x=SMA, y=Value, group=Group.1, colour=Group.1)) +
  geom_line() +
  geom_point(data=means, aes(x=SMA, y=m), inherit.aes = F)

enter image description here

...