Агрегируйте общий доход на каждую дату с помощью агрегатной функции
У меня есть ежедневный набор данных доходов df от 2016-01-01 до 2017-05-21. Набор данных содержит Datum, languages и Opbrengst переменные.
Datum lanuage Opbrengst
596 20160101 bg 254
923 20160101 bg-bg 434
1044 20160101 ca 115
1544 20160101 ca-es 238
2008 20160101 cs 251
....
Я хочу group by Datum для Opbrengst.
Я пробовал метод из Как суммировать переменную по группе?
aggregate(Datum ~ Opbrengst, data=df, FUN="sum")
Или
tapply(df$Datum, df$Opbrengst, FUN=sum)
Результаты становятся
Opbrengst Datum
1 10 786304986
2 100 1048457710
3 1000 221796843
4 1000,01 20160628
5 1000,78 20170104
Это не тот результат, которого я хочу. Я хочу иметьсумму дохода от каждой даты . Мне интересно, в чем проблема?
1 ответ:
У нас есть две проблемы.
1) Использование группирующей переменной в Формуле методаaggregate. Группирующая переменная помещается в rhs~, в то время как переменная интересаOpbrengstнаlhs2) колонка "Opbrengst" - этоaggregate(Opbrengst~Datum, df1, sum)factor. Он, по-видимому, имеет,характер, и это приводит к классуfactorпри чтении (если мы не указываемstringsAsFactors = FALSEвread.csv/read.tableи т. д.). Один из вариантов-удалить,сsub, преобразовать вnumericи затем использоватьaggregatedf$Opbrengst <- as.numeric(gsub(",", "", df$Opbrengst))