Jest to najprawdopodobniej spowodowane tym, że dbplyr nie ma zdefiniowanych tłumaczeń do konwersji na.omit
lub str_count
na postgresql (tłumaczenie dla paste
jest najprawdopodobniej zdefiniowany).
Możesz zastąpić str_count
i na.omit
sprawdzając wcześniej brakujące wartości.
st2tm %>%
mutate(
p1 = lag(pid),
p2 = lead(pid)
) %>%
filter(!is.na(p1),
!is.na(p2)) %>%
mutate(g = paste(p1, ",", pid, ",", p2)) %>%
select(-c(p1, p2)) %>%
A jeśli paste
jest problem, który można zastąpić wbudowanym CONCAT
postgresql funkcja.
st2tm %>%
mutate(
p1 = lag(pid),
p2 = lead(pid)
) %>%
filter(!is.na(p1),
!is.na(p2)) %>%
mutate(g = CONCAT(p1, ",", pid, ",", p2)) %>%
select(-c(p1, p2)) %>%
Ponieważ CONCAT
nie jest funkcją R, dbplyr przekaże ją jako napisaną do postgresql, zamiast próbować ją przetłumaczyć.