r语言 - 在 mutate() 中使用自定义函数与 dplyr 和 monetDB



我刚刚开始发现使用R&monetDB/monetDBLite包的所有优点 - 很棒的东西!
但是我很好奇是否可以在dplyrmutate()中使用自定义函数,即

# Connect to monetDBLite
db <- src_monetdb(embedded = db.dir)
data <- tbl(db, "my.table")
# Try to make a new column using custom defined function  
data %>% group_by(colX) %>% mutate(NewCol = customFunc())  

导致以下错误:

Error in .local(conn, statement, ...) : 
Unable to execute statement 'SELECT colA colB colC...'.
Server says 'ParseException:SQLparser:SELECT: no such operator 'customFunc''.

SQL解析器似乎在查找自定义函数时遇到问题。我是否在监督某些事情(在SQL函数定义等中声明R代码)?是否可以像这样对monetDBLite包使用自定义函数?

由于@Hannes在评论中回答了我的问题 - 我在这里添加了我选择的其他一些东西:

  • 人们可以使用基本的dplyr动词(selectfiltergroup_bymutate)与其他一些"基本"R功能结合使用。在"SQL 翻译"部分下的dplyr数据库小插图中有一个支持的函数列表,以及更多内容。因此,使用我上面问题中的示例 - 可以做到:
    data %>% group_by(col_x) %>% mutate(new_col = log10(some_old_col)) .

  • MonetDBLite不支持 UDF(例如我在这里的问题 - 是否可以在mutate调用中使用我的 UDF)......

  • 。但是,"完整"MonetDB确实支持将已使用的已定义函数发送到数据库进行计算。这一切都在他们的主页上得到了很好的解释。

相关内容

  • 没有找到相关文章

最新更新