Создайте гистограмму, группируя по столбцу, а затем суммируйте по другому в R - PullRequest
1 голос
/ 28 января 2020

У меня есть набор данных data со следующими значениями:

               ID                TIME                         Duration   
                A                12/18/2019 4:45:10 AM        1 sec
                A                12/18/2019 4:45:11 AM        0 sec
                A                12/18/2019 9:06:59 PM        0 sec                    
                B                12/18/2019 4:14:13 AM        1 sec
                B                12/18/2019 4:14:14 AM        0 sec

I wi sh, чтобы создать гистограмму, которая группирует идентификатор и суммирует продолжительность для следующего, который будет иметь идентификатор в качестве оси X и Sum на оси Y, используя ggplot.

               ID        Sum

               A         1
               B         1

Я использовал следующий код:

              library(dplyr)
              library(ggplot)
              library(qplot)




            sumdata<-df %>% groupby(ID) %>% SUM(Duration)

            qplot(df,
            geom="histogram",
            binwidth = 0.5,  
            main = "Histogram for Duration", 
            xlab = "ID"
            ylab = "Duration")

Я все еще исследую. Любые предложения приветствуются.

Ответы [ 2 ]

2 голосов
/ 28 января 2020

Вы можете использовать ggplot2 для этого.

Суммируйте данные, как это, перед построением графика:

library(dplyr)
 df <- df %>%
   group_by(ID) %>%
   summarise_all(sum)

Затем создайте график.

library(ggplot2)
 ggplot(data = df, aes(x = ID, y = Duration)) +
   geom_bar(stat = "identity")
1 голос
/ 28 января 2020

Опция с base R

aggregate(.~ ID, df, FUN = sum)
...