Я видел много похожих вопросов на сайте, но почему-то не смог найти ответ на мою проблему. У меня есть фрейм данных, похожий на этот:
head(ftrade)
Imports Value Exports Value balance nacer2
1 7349 185712 178363 01
2 4772816 99763470 94990654 01
3 4772816 99763470 94990654 01
4 4772816 99763470 94990654 01
5 1022528 7880815 6858287 01
6 8295652 215331 -8080321
Я хочу агрегировать свои данные по nacer2 при суммировании значений. Мой ожидаемый результат будет выглядеть так:
Imports Value Exports Value balance nacer2
1 50000 100000 50000 01
2 50000 100000 50000 02
3 50000 100000 50000 03
4 50000 100000 50000 04
5 50000 100000 50000 05
, где значения в первых трех столбцах являются суммой исходных данных. Я запускаю следующее:
ftrade <- do.call(data.frame, aggregate(cbind("Exports Value",
"Imports Value",
balance) ~ nacer2,
data = ftrade,
sum))
, которое возвращает сообщение об ошибке: Ошибка в Summary.factor (c (1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,: 'sum' не имеет значения для факторов
Во всех ответах, которые я видел на этом форуме, говорится, что причина в том, что одна из переменных является фактором, и поэтому суммирование не имеет смысла. Я проверил,и ни одна из моих переменных не является фактором:
str(ftrade)
'data.frame': 11963 obs. of 4 variables:
$ Imports Value: num 7349 4772816 4772816 4772816 1022528 ...
$ Exports Value: num 185712 99763470 99763470 99763470 7880815 ...
$ balance : num 178363 94990654 94990654 94990654 6858287 ...
$ nacer2 : chr "01" "01" "01" "01" ...
Так как я агрегирую по nacer2, это не должно быть проблемой, что это символ. Я пытаюсь снова преобразовать все в числовые значения, но ничегокажется, решил мою проблему. Я не уверен, что понимаю, что на самом деле здесь происходит. Я что-то здесь упускаю?
Спасибо за вашу помощь, Клемент