在SQL Server中使用RevoScaleR包(多线程)函数创建R相关矩阵

时间:2018-07-25 13:44:57

标签: r sql-server sql-server-2016 correlation microsoft-r

我正在尝试使用SQL Server 2016 R Services创建关联矩阵。 由于我将拥有大量数据,因此我想使用标准R“ cor”函数的新Rx版本。

This是我要使用的功能:

这是我现在拥有的代码。

DROP TABLE IF EXISTS #DummyData
CREATE TABLE #DummyData
(
     [VariableA] VARCHAR(24)
    ,[VariableB] VARCHAR(24)
    ,[Value] SMALLINT
)

INSERT INTO #DummyData([VariableA], [VariableB], [Value])
VALUES   ('A1','B1', 4)
        ,('A1','B2', 3)
        ,('A1','B3', 1)
        ,('A2','B1', 2)
        ,('A2','B2', 1)
        ,('A2','B3', 3)
        ,('A3','B1', 4)
        ,('A3','B2', 5)
        ,('A3','B3', 2);

EXECUTE sp_execute_external_script    
      @language = N'R'   
    , @script = N'
        library(reshape)
        pivotData <- cast(DataIn, VariableA ~ VariableB,fun.aggregate = max)
        curData <- cor(pivotData, method="spearman")

        DataOut <- data.frame(row=rownames(curData)[row(curData)[upper.tri(curData)]], 
        col=colnames(curData)[col(curData)[upper.tri(curData)]], 
        corr=curData[upper.tri(curData)])
    '   
    , @input_data_1 = N'SELECT [VariableA], [VariableB], [Value] FROM #DummyData'
    , @input_data_1_name  = N'DataIn'   
    , @output_data_1_name =  N'DataOut';

这段代码给我以下结果:

enter image description here

任何想法,但是使用MS RevoScaleR软件包,我如何能获得相同的结果?

0 个答案:

没有答案