Как я могу агрегировать суммы данных по месяцам на гистограмме? - PullRequest
0 голосов
/ 10 февраля 2020

Так что в основном мне нужно сгенерировать гистограмму, которая отслеживает количество часов за месяц по заданному CSV-данным. Я перепробовал много вариантов, но это то, что у меня сейчас есть:

df = read.csv("Absenteeism_at_work.csv",sep=";",header=TRUE)

tabledata <- table(df$Absenteeism.time.in.hours,df$Month.of.absence)

barplot(tabledata[,-1],main="Absent Hours by Month",

    xlab="Month",

    ylab="Total Hours Absent",

    col="Red")

The bar plot currently being generated

Однако я считаю, что это просто дает мне частоту по месяцам, и я нужно выяснить, как поместить df $ absenteeism.time.in.hours в качестве суммы суммы по оси y без использования ggplot. Любой совет о том, как установить сумму абсентеизма.time.in.hours в качестве оси у будет принята с благодарностью.

Набор данных для справки

1 Ответ

0 голосов
/ 10 февраля 2020

Вы должны использовать tapply (таблица применяется) вместо table. Мы можем использовать его, чтобы сгруппировать «прогулы по часам» по месяцам, а затем применить некоторые функции к этим группам; в этом случае мы хотим sum группы.

tabledata <- tapply(as.numeric(as.character(df$`Absenteeism time in hours`)),
                    as.numeric(as.character(df$`Month of absence`)), 
                    sum)

barplot(tabledata[-1], main="Absent Hours by Month",
    xlab="Month",
    ylab="Total Hours Absent",
    col="Red")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...