Использование пользовательской функции в mutate() с dplyr & monetDB
Я только начинаю раскрывать все преимущества использования R
& monetDB
/monetDBLite
упаковка - отличная штука!
Мне было любопытно, однако, можно ли использовать пользовательскую функцию в dplyr
"s mutate()
т.е.
# 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 есть проблема с поиском пользовательской функции. Я что-то наблюдаю (объявляю R
код в SQL
определение функции и т. д.) Можно ли использовать пользовательские функции с monetDBLite
пакет вроде этого?
1 ответ
Поскольку @Hannes ответил на мой вопрос в комментариях - я добавляю его сюда с некоторыми другими вещами, которые я поднял:
можно использовать основные
dplyr
глаголы (select
,filter
,group_by
&mutate
) в сочетании с некоторыми другими "базовыми"R
функции. Список поддерживаемых функций и более подробно об этомdplyr
Виньетка с базами данных в разделе "Перевод SQL". Итак, используя пример из моего вопроса выше - можно сделать:data %>% group_by(col_x) %>% mutate(new_col = log10(some_old_col))
,MonetDBLite
не поддерживает UDF (например, мой вопрос здесь - если возможно использовать мой UDF внутриmutate
вызов)...... однако "полный"
MonetDB
поддерживает ли используемые определенные функции для отправки в базу данных для вычислений. Все это хорошо объяснено на их домашней странице.