2016-06-21 8 views
1

In MySQL zu tun, was ich getan habe ist:Wie MySQL Update-Abfrage in r

update table set group = 1 where log(id) < 0 

Ich will in R gleiche tun, aber ich habe keine Ahnung,

Was soll ich tun?

+0

Es gibt ein Paket namens [sqldf] (https://cran.r-project.org/web/packages/sqldf/sqldf.pdf). Schau es dir an. –

+0

'Registerkarte $ Gruppe [Protokoll (Registerkarte $ ID) <0] <- 1' oder ähnlich. – thelatemail

+0

Überprüfen Sie diese [out] (http://stackoverflow.com/questions/20130417/update-function-sqldf-r-language) –

Antwort

1

Wir können data.table in R verwenden. Konvertieren Sie den 'data.frame' in 'data.table' (setDT(tab)). Unter Verwendung der logischen Bedingung in 'i' ordnen wir (:=) 1 der Variablen 'group' zu. Wenn dies an Ort und Stelle ist, wäre es viel schneller und effizienter.

library(data.table) 
setDT(tab)[log(id) <0, group := 1] 
+1

Sie vergessen, Protokoll für die ID zu setzen. –

1

Mit sqldf: Sie können keine Gruppe als der Variablennamen so im Wechsel zu CATG verwenden.

sqldf(c("update table set catg = 1 where log(id) < 0", "select * from main.xy")) 
+0

Sie können 'group' in doppelte Anführungszeichen setzen oder in eckige Klammern einschließen. –

+0

Hoffentlich kann ich mich von jetzt an daran erinnern! Vielen Dank –