ausführen Ich muss Spaltenwerte conditionnaly in anderen Spalten in einigen PostgreSQL
Datenbanktabelle aktualisieren. Ich schaffte es, eine SQL-Anweisung in R schreiben und es mit dbExecute
von DBI
Paket ausführen.Kann ich eine SQL-Aktualisierungsanweisung nur mit der dplyr-Syntax in R
library(dplyr)
library(DBI)
# Establish connection with database
con <- dbConnect(RPostgreSQL::PostgreSQL(), dbname = "myDb",
host="localhost", port= 5432, user="me",password = myPwd)
# Write SQL update statement
request <- paste("UPDATE table_to_update",
"SET var_to_change = 'new value' ",
"WHERE filter_var = 'filter' ")
# Back-end execution
con %>% dbExecute(request)
Ist es möglich, dies nur mit dplyr
Syntax zu tun? Ich habe versucht, aus Neugier,
con %>% tbl("table_to_update") %>%
mutate(var_to_change = if (filter_var == 'filter') 'new value' else var_to_change)
, die in R funktioniert aber offensichtlich tut nichts in db, da es eine select
Anweisung verwendet. copy_to
erlaubt nur für append
und overwite
Optionen, also kann ich nicht sehen, wie es zu benutzen, es sei denn, dann löschen die gefilterten Beobachtungen anhängt ...