Това най-вероятно се дължи на това, че dbplyr няма дефинирани преводи за конвертиране на na.omit
или str_count
в postgresql (превод за paste
е най-вероятно дефиниран).
Можете да замените str_count
и na.omit
като проверите по-рано за липсващи стойности.
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)) %>%
И ако paste
е проблемът, можете да го замените с вградения CONCAT
на postgresql функция.
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)) %>%
Защото CONCAT
не е R функция, dbplyr ще го предаде както е написано на postgresql, вместо да се опитва да го преведе.