Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用SAP HANA数据库中的数据在R中执行线性回归_Sql_R_Linear Regression_Hana - Fatal编程技术网

Sql 使用SAP HANA数据库中的数据在R中执行线性回归

Sql 使用SAP HANA数据库中的数据在R中执行线性回归,sql,r,linear-regression,hana,Sql,R,Linear Regression,Hana,我试图将数据集导入R以应用线性回归模型,但我对我的代码表示怀疑,因为我是R的新手。该数据集包含5000多行数据,如下所示: 功耗cputidbsu 作为列名,以下整数作为其在上述列中的值: 13225654 我编写的调用R函数的sql代码是 CREATE COLUMN TABLE "PREDICTIVE ANALYSIS" LIKE "ANAGAPPAN.POWER_CONSUMPTION" WITH NO DATA; SELECT POWER_APP, POWER_DB,CPUTI,DBTI

我试图将数据集导入R以应用线性回归模型,但我对我的代码表示怀疑,因为我是R的新手。该数据集包含5000多行数据,如下所示:

功耗
cputi
dbsu

作为列名,以下整数作为其在上述列中的值:

132
25
654

我编写的调用R函数的sql代码是

CREATE COLUMN TABLE "PREDICTIVE ANALYSIS" LIKE "ANAGAPPAN.POWER_CONSUMPTION" WITH NO DATA;

SELECT POWER_APP, POWER_DB,CPUTI,DBTI,DBSU

FROM "ANAGAPPAN.POWER_CONSUMPTION";
DROP PROCEDURE USE_LM;

CREATE PROCEDURE USE_LM( IN train "ANAGAPPAN.POWER_CONSUMPTION", OUT result "PREDICTIVE ANALYSIS")

LANGUAGE

RLANG AS

BEGIN

library(lm)

model_app <- lm( POWER_APP ~ CPUTI + DBTI + DBSU + KBYTES_TRANSFERRED, data = train )

colnames(datOut) <- c("POWER_APP", "CPUTI", "DBTI", "DBSU", "DBSU")

PREDICTIVE ANALYSIS <- as.data.frame( lm(model_App))

END;
创建列表“预测分析”,如“ANAGAPPAN.POWER_consumpion”,无数据;
选择电源应用程序、电源数据库、CPUTI、DBTI、DBSU
来自“ANAGAPPAN.电力消耗”;
丢弃程序使用;
创建程序使用LM(列车内“ANAGAPPAN.功耗”,输出结果“预测分析”)
语言
朗斯
开始
图书馆(lm)

model_app虽然我不熟悉SAP产品,但我会尝试一下我认为介于
开始
结束之间的R代码

library(lm)
是不正确的,如@Olli所述。要访问R的线性模型功能,您必须什么都不调用。默认情况下,它是通过
stats
包加载的(如果在
--vanilla
模式下调用R,则可能不是这样)

model_app <- lm( POWER_APP ~ CPUTI + DBTI + DBSU + KBYTES_TRANSFERRED, data = train )
我假设你想根据一个模型来预测(平均值)

PREDICTIVE ANALYSIS <- as.data.frame( lm(model_App))
你可以试试看

x <- 1:10
y <- rnorm(10)

mdl <- lm(y ~ x)

as.data.frame(predict(mdl))

   predict(mdl)
1    0.47866685
2    0.34418219
3    0.20969753
4    0.07521287
5   -0.05927180
6   -0.19375646
7   -0.32824112
8   -0.46272579
9   -0.59721045
10  -0.73169511

x不清楚,但听起来您可以在R中输入数据,但建模有问题?如果是这种情况,您可以删除sql标记,并请提供一个我们可以工作的解决方案with@Phil谢谢你的校对:),我是新到这个论坛是一个相当丰富的编辑。是的,我现在可以导入它,但是我无法调用sql命令对数据进行线性回归。不客气。我不知道为什么需要“调用sql命令对数据进行线性回归”。也许这对其他人来说意味着什么,但我会将数据输入到R中,然后在R环境中执行线性回归?如果您提供我们可以使用的数据(查看我发布的链接),我们可以帮助您。
lm()
base R函数不是吗?为什么要调用
library(lm)
?@Phil-他需要从SQL(实际上是SAP SQLScript)调用它,因为他正在使用HANA内存数据库中内置的预测分析库引擎。TLDR:他正在数据库中运行这些命令。这是您为R提供的最大提示,非常感谢,当我进行更改并运行它时,收到错误消息。我将发布更改的代码和错误消息。是我更改代码的链接,生成的错误是-无法在317 ms 456µs中执行“调用使用LM(“功耗”、“预测分析”)和概述”。SAP DBTech JDBC:[2048]:列存储错误:搜索表错误:[34084]接收错误:获取结果错误。;错误:找不到对象“结果”堆栈跟踪:没有可用的回溯我已修改了答案。我现在知道object
result
是传递到数据库的内容(从R)。我在这里找到的:没错。我也在使用hana_r_集成。谢谢罗曼:-)我还有最后一个错误,其余的都被清除了。上面说我不能打电话给你。这是一个无效的名字。我正在试图找到它的答案。
PREDICTIVE ANALYSIS <- as.data.frame( lm(model_App))
# based on http://help.sap.com/hana/sap_hana_r_integration_guide_en.pdf
# you have to specify variable result which will be exported to the database
result <- as.data.frame(predict(model_app))
x <- 1:10
y <- rnorm(10)

mdl <- lm(y ~ x)

as.data.frame(predict(mdl))

   predict(mdl)
1    0.47866685
2    0.34418219
3    0.20969753
4    0.07521287
5   -0.05927180
6   -0.19375646
7   -0.32824112
8   -0.46272579
9   -0.59721045
10  -0.73169511