SQLスクリプトにRスクリプトを追加する機能を使用して、Microsoft SQL Management Studio 2016で作業しています。 私の目標は、好きなように、すなわちx、第1のオブジェクト、y、第2のオブジェクトを持つテーブルにデータを入れるaPrioriアルゴリズム手順を達成することです。SQLサーバーとR、データマイニング
私の意見ではデータに問題があるので、私はここにこだわっています。エラーはこれです。
A 'R' スクリプトエラーがHRESULTを0x80004004と 'sp_execute_external_script' の実行中に発生しました。
外部スクリプトエラーが発生しました:evalの中のエラー(exprの、ENVIR、enclos) :悪いアロケーションコール:ソース - > withVisible - >評価 - >評価 - >は.call
ここに私のコードを。
A B
a f
f a
b c
...
y z
そして、ここでコード:
GO
create procedure dbo.apriorialgorithm as
-- delete old table
IF OBJECT_ID('Data') IS NOT NULL
DROP TABLE Data
-- create a table that store the query result.
CREATE TABLE Data (art1 nvarchar(100), art2 nvarchar(100));
-- store the query
INSERT INTO Data (art1, art2)
select
firstfield as art1,
secondfield as art2
from allthefields
;
IF OBJECT_ID('output') IS NOT NULL
DROP TABLE output
-- create table of the results of the analysis.
CREATE TABLE output (x nvarchar(100), y nvarchar(100));
INSERT INTO output (x, y)
-- R script.
EXECUTE sp_execute_external_script
@language = N'R'
, @script = N'
今Rスクリプト ソースデータは、このような2つの列のテーブルです。クエリから得られるデータは数値ですが、先験的には因子が必要なので、まずデータを因子化するように曲げます。
df<-data.frame(x=as.factor("art1"),y=as.factor("art2"))
その後、私はアプリオリを適用することができます。
library("arules");
library("arulesViz");
rules = apriori(df,parameter=list(minlen=2,support=0.05, confidence=0.05));
私はルールのフォーマットせずにデータを必要とするが、単にオブジェクト:
ruledf <- data.frame(
lhs <- labels(lhs(rules)),
rhs <- labels(rhs(rules)),
[email protected])
a<-substr(ruledf$lhs,7,nchar(as.character(ruledf$lhs))-1)
b<-substr(ruledf$rhs,7,nchar(as.character(ruledf$rhs))-1)
ruledf2<-data.frame(a,b)
'
そして最後の部分:
, @input_data_1 = N'SELECT * from Data'
, @output_data_1_name = N'ruledf2'
, @input_data_1_name = N'ruledf2';
GO
私はどこにいるのか分からないRODBCを使ってRで同じことをしてDBデータをキャッチするので、すべては問題ありません。 私を助けることができますか?前もって感謝します!