Điều này rất có thể do dbplyr không có bản dịch được xác định để chuyển đổi na.omit
hoặc str_count
thành postgresql (bản dịch cho paste
rất có thể được xác định).
Bạn có thể thay thế str_count
và na.omit
bằng cách kiểm tra các giá trị bị thiếu trước đó.
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)) %>%
Và nếu paste
là vấn đề bạn có thể thay thế nó bằng CONCAT
có sẵn của postgresql chức năng.
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)) %>%
Bởi vì CONCAT
không phải là một hàm R, dbplyr sẽ chuyển nó như được viết tới postgresql thay vì cố gắng dịch nó.