У меня есть данные с привязкой к сетке в файле csv
, где ежегодные наблюдения за осадками для всех сеток хранятся в виде простых текстовых данных ( необработанные данные с привязкой к сетке прямо здесь ). Тем не менее, я хочу сделать ежегодную статистику для этих данных сетки, чтобы вычислить годовое общее количество осадков для каждой ячейки сетки. Поскольку размер необработанных данных довольно велик, я поместил эти данные сетки на лету (, пожалуйста, посмотрите необработанные данные сетки на лету ).
По сути, на основе ежегодных наблюдений за осадками я хочу сделать простую статистику, чтобы рассчитать общее годовое количество осадков для ячейки сетки по всему охвату. Вот весь охват сетки, который я собираюсь вычислять за год для каждой ячейки сетки.
Я думаю, dplyr
или tidyr
могли бы помочь в таком агрегировании данных. Возможно, первое, что нужно сделать, это изменить исходные данные в csv
и получить длинную электронную таблицу для каждой координаты сетки и просто использовать утилиты base::sum
или dplyr::summarize
для составления годовой статистики. Для этого вот моя первая попытка получить длинную таблицу:
raw_csvData %>%
group_by(.$days) %>%
tidyr::spread(spread(key = .$days,value = precip))
получение длинных таблиц для каждой сетки, выше сценариев R не работает. Возможно, получение длинных таблиц не требуется, может быть, есть даже быстрый и умный способ сделать это.
По сути, я намеревался рассчитать общее годовое количество осадков для каждой ячейки сетки и добавить этот результат агрегации в новый столбец, а затем отбросить все данные ежедневных наблюдений, потому что мне не нужны эти данные, как только я получаю годовую общую сумму осадков для каждой сетки, которая будет производить даже чистую и меньшую продукцию.
Если мне не нужно изменять исходные данные в csv
, чтобы получить длинную электронную таблицу, каково эффективное и быстрое решение для этой задачи агрегирования данных? Любой хороший способ сделать это с dplyr
, tidyr
или наоборот? Есть идеи?