Detta beror troligen på att dbplyr inte har översättningar definierade för konvertering av na.omit
eller str_count
till postgresql (en översättning för paste
är mest troligt definierad).
Du kan ersätta str_count
och na.omit
genom att kontrollera tidigare för saknade värden.
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)) %>%
Och om paste
är problemet du kan ersätta det med postgresqls inbyggda CONCAT
funktion.
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)) %>%
Eftersom CONCAT
är inte en R-funktion kommer dbplyr att skicka den som skriven till postgresql istället för att försöka översätta den.