2016-06-20 6 views
2

私はこのようなdplyrを経由して設定したSQLテーブルを持っている:dplyr mutateの中でカスタム関数を使用していますか?

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 

私がやりたい何がisCallCorrectVと呼ばれるカスタム関数のTまたはFの結果を保持して正しいと呼ばれる追加の列を追加します。 isCallCorrectVのパラメーターは、表の列です。ここで

はアクションでisCallCorrectVの例である:

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

私は、このコマンドを使用してみましたが、私はエラーを取得します。

dplyr::mutate(noswings, correct = isCallCorrectV(px, pz, type, b_height, stand)) 
Error in sqliteSendQuery(conn, statement) : 
error in statement: no such function: ISCALLCORRECTV 
+0

にデータを読み出すためのコマンドを収集dplyrを使用することができる機能のためのコードを提供し、Rにそのスペルをしないが、大文字と小文字が区別されます。 –

+1

あなたはSQLiteのバックエンドを使っているようですね?これは、Rで書かれたカスタム関数では動作しません。[dplyrのデータベース上のvignette](https://cran.r-project.org/web/packages/dplyr/vignettes/databases.html)を見ると、 'dplyr'がSQLに変換する方法を知っている(そして' isCallCorrect'がそのリストにない)R関数のリストを見つけてください。 – Gregor

+0

@ 42-定義の追加 – zkello

答えて

1

@Gregorのコメントでは、SQLデータベースのdplyrでカスタム関数を使用することはできません。関数はhereと定義されています。

だから私のオプションは以下のとおりです。

(1)Rにデータを読み、カスタムRの機能を使用してあり、それを操作する、または(2)SQLでカスタム関数を書き換えると、データベースにそれらを定義

私はR.

+0

リンク切れ、もう存在しないようです – Ferroao

関連する問題