sql >> Base de Datos >  >> RDS >> PostgreSQL

postgres genera una matriz usando la ventana deslizante

Esto probablemente se deba a que dbplyr no tiene traducciones definidas para convertir na.omit o str_count en postgresql (una traducción de paste es muy probable que esté definido).

Puede reemplazar str_count y na.omit comprobando antes los valores que faltan.

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)) %>% 

Y si paste es el problema que podría reemplazarlo con el CONCAT incorporado de postgresql función.

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)) %>% 

Porque CONCAT no es una función R, dbplyr la pasará como está escrita a postgresql en lugar de intentar traducirla.