2016-06-20 6 views
2

Ich habe eine SQL-Tabelle über dplyr wie folgt aufgebaut:Verwenden einer benutzerdefinierten Funktion in dplyr muate?

num     gameday_link stand b_height  px pz type 
1 1 gid_2016_04_05_houmlb_nyamlb_1  R  5-6 0.194 3.225 B 
2 1 gid_2016_04_05_houmlb_nyamlb_1  R  5-6 0.510 1.965 S 
3 1 gid_2016_04_05_houmlb_nyamlb_1  R  5-6 -1.367 2.459 B 

Was würde ich tun möchte, ist eine zusätzliche Spalte hinzufügen korrekt aufgerufen, die die T oder F Ergebnisse einer benutzerdefinierten Funktion hält isCallCorrectV genannt. Die Parameter von isCallCorrectV sind Spalten in der Tabelle. Hier

ist ein Beispiel für isCallCorrectV in Aktion:

> isCallCorrectV(c(0.0, 2.5), c(2.5, 0), c("S", "B"), c("6-0", "5-0"), c("R", "L")) 
[1] TRUE FALSE 

Ich habe versucht, diesen Befehl, aber ich erhalte eine Fehlermeldung.

+0

Geben Sie Code für die Funktion und nicht, dass die Rechtschreibung in R zu lesen ist case-sensitive. –

+1

Es klingt, als ob Sie ein SQLite-Backend verwenden? Das funktioniert nicht mit einer benutzerdefinierten Funktion, die in R geschrieben ist. Wenn Sie sich [dplyrs Vignette zu Datenbanken] (https://cran.r-project.org/web/packages/dplyr/vignettes/databases.html) ansehen, können Sie das tun finde eine Liste der R-Funktionen, die 'dplyr' in SQL konvertieren kann (und' isCallCorrect' ist nicht in dieser Liste). – Gregor

+0

@ 42- Zusätzliche Definitionen – zkello

Antwort

1

Per @ Gregor Kommentare, ist es nicht möglich, benutzerdefinierte Funktionen in dplyr auf einer SQL-Datenbank zu verwenden. Es können nur die Funktionen here definiert werden.

So meine Optionen sind:

(1) Lesen Sie die Daten in R und arbeiten auf es dort Ihre benutzerdefinierten R-Funktionen verwenden, oder (2) umschreiben die benutzerdefinierten Funktionen in SQL und definieren Sie sie in Ihrer Datenbank

ich den dplyr Befehl sammeln können die Daten in R.

+0

defekten Link, scheint existiert nicht mehr – Ferroao