Je to pravděpodobně způsobeno tím, že dbplyr nemá definované překlady pro převod na.omit
nebo str_count
do postgresql (překlad pro paste
je s největší pravděpodobností definováno).
str_count
můžete nahradit a na.omit
tím, že dříve zkontrolujete chybějící hodnoty.
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 pokud paste
je problém, který byste mohli nahradit postgresql vestavěným CONCAT
funkce.
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)) %>%
Protože CONCAT
není funkce R, dbplyr ji předá jako zapsanou do postgresql, místo aby se ji snažil přeložit.