我有困难:
- 列出 PostgreSQL 可用的 R 包和函数。
- 安装用于 PL/R的软件包(例如Kendall )
- 在 PostgreSQL 中调用 R 函数
列出可用的 R 包
问题 1。您如何找出已加载的 R 模块?
SELECT * FROM r_typenames();
这显示了可用的类型,但是检查是否Kendall( X, Y )
已加载呢?例如,文档显示:
CREATE TABLE plr_modules (
modseq int4,
modsrc text
);
这似乎允许插入记录来指示Kendall
要加载的内容,但以下代码在语法上并未解释如何确保加载它:
INSERT INTO plr_modules
VALUES (0, 'pg.test.module.load <-function(msg) {print(msg)}');
问题 2。如果您尝试加载,上面的行会是什么样子Kendall
?
问题 3。是否适用?
安装 R 包
使用“突触”包管理器安装了以下包:
r-base
r-base-core
r-base-dev
r-base-html
r-base-latex
r-cran-acepack
r-cran-boot
r-cran-car
r-cran-chron
r-cran-cluster
r-cran-codetools
r-cran-design
r-cran-foreign
r-cran-hmisc
r-cran-kernsmooth
r-cran-lattice
r-cran-matrix
r-cran-mgcv
r-cran-nlme
r-cran-quadprog
r-cran-robustbase
r-cran-rpart
r-cran-survival
r-cran-vr
r-recommended
问题 4。我怎么知道肯德尔是否在里面?
问题 5。如果不是,我如何找出它在哪个包中?
问题 6。如果它不在适合与apt-get
( aptitude
, synaptic
, dpkg
, 你有什么) 一起安装的软件包中,我该如何在 Ubuntu 上安装它?
问题 7。安装步骤记录在哪里?
调用 R 函数
我有以下代码:
EXECUTE 'SELECT '
'regr_slope( amount, year_taken ),'
'regr_intercept( amount, year_taken ),'
'corr( amount, year_taken ),'
'sum( measurements ) AS total_measurements '
'FROM temp_regression'
INTO STRICT slope, intercept, correlation, total_measurements;
此代码调用 PostgreSQL 函数corr
来计算 Pearson 对数据的相关性。理想情况下,我想做以下事情(通过切换corr
for plr_kendall
):
EXECUTE 'SELECT '
'regr_slope( amount, year_taken ),'
'regr_intercept( amount, year_taken ),'
'plr_kendall( amount, year_taken ),'
'sum( measurements ) AS total_measurements '
'FROM temp_regression'
INTO STRICT slope, intercept, correlation, total_measurements;
问题 8。我必须自己写plr_kendall
吗?
问题 9。我在哪里可以找到一个简单的示例:
- 将 R 模块加载到 PG 中。
- 为所需的 R 函数编写 PG 包装器。
- 从 SELECT 调用 PG 包装器。
例如,最后两个步骤是否如下所示:
create or replace function plr_kendall( _float8, _float8 ) returns float as '
agg_kendall(arg1, arg2)
' language 'plr';
CREATE AGGREGATE agg_kendall (
sfunc = plr_array_accum,
basetype = float8, -- ???
stype = _float8, -- ???
finalfunc = plr_kendall
);
然后SELECT
如上?
谢谢!