dplyr group_by возвращает пустое значение - PullRequest
0 голосов
/ 20 февраля 2020

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

18549282 obs. of  3 variables:

$ road: chr  "MULTILINESTRING((30.5592664 -30.5971316,30.5597665 -30.5964615))" ...
$ n1       : int  0 0 0 0 0 0 0 0 0 0 ...
$ n2       : int  0 0 0 0 0 0 0 0 0 0 ...

В столбце дороги нет пустых записей, что означает, что каждая запись имеет символ.

Когда я использую dplyr group_by вместе с суммированием, чтобы получить сумму n1 и сумму n2 по дороге, я получаю сумму n1 и n2, но вижу столбец в столбце дороги. например,

tt %>%
group_by(road) %>%
summarize(sn1 = sum(n1),
sn2 = sum(n2))

Я получаю:

enter image description here

Опять я на 100% уверен, что в столбце дороги нет пробелов .

Но когда я создаю фрейм данных с, скажем, 1000 записей следующим образом

small_dataset <- head(tt, 1000)

Я не вижу пустых записей в результатах:

enter image description here

Кажется, что dplyr борется с большим количеством данных.

Есть идеи, как мне справиться с этой проблемой?

1 Ответ

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

Я нашел решение, нашел пакет, с которым я не был знаком, под названием rquery .

tt  %>%
rquery::project(., 
count := n(),
 n1 := sum(n1),
n2 :=  sum(n2),
groupby = 'road')

решил мою проблему, и это быстрее, чем функция dplyr group_by.

...