数据库
首页 > 数据库> > [SQL Server][R Language]In-Database R(二)安装R Package(R包)

[SQL Server][R Language]In-Database R(二)安装R Package(R包)

作者:互联网

R套件(Package)的资源非常丰富,截自2016-06-18已经有8,195个R包可以下载,安装完R Service(In-DataBase R)之后,

会有基本内建的R包,但许多常用的R包则需要额外下载及安装,这篇来笔记R包的安装。


截自2016-06-18 R包的套件数:

在R Console、R Studio、R Tool For Visual Studio,安装R包只要一条命令install.packages("R包名称"),工具就会自动下载及安装,

撰写R Script就可以载入library("R包名称"),那么R Service?

1.我们来试试2013-01~05 月R包兵器下载排行榜第一名plyr

2.首先在R Script制作出一个Data frame,假设数据行有国家名、人口数及FIFA世界足协男子组分数。

 测试数据取欧洲五大联赛所在的国家抽样(西甲、英超、法甲、德甲、义甲),假设过去1年,每个国家都增加了100万人

execute sp_execute_external_script
  @language = N'R'
, @script = N'
country <- c("France","Germany","Spain","England","Italy","France","Germany","Spain","England","Italy");
year <- c(2016,2016,2016,2016,2016,2015,2015,2015,2015,2015);
population <- c(6500,8221,4666,6111,5933,6400,8121,4566,6011,5833);
FIFAScore <- c(925,1310,1267,1069,982,907,1277,1309,1016,959);
OutputDataSet <- data.frame(country,population,year,FIFAScore)'
, @input_data_1 = N''
WITH RESULT SETS (([country] varchar(20) NOT NULL,[population] int,[year] int,[FIFAScore] int));

输出执行结果:

利用data frame把4组数据合并起来。

3.我们想利用plyr里头的ddply分组统计计算人口增长与足球成绩相关系数(Correlation coefficient)

execute sp_execute_external_script
  @language = N'R'
, @script = N'
library("plyr")
country <- c("France","Germany","Spain","England","Italy","France","Germany","Spain","England","Italy");
year <- c(2016,2016,2016,2016,2016,2015,2015,2015,2015,2015);
population <- c(6500,8221,4666,6111,5933,6400,8121,4566,6011,5833);
FIFAScore <- c(925,1310,1267,1069,982,907,1277,1309,1016,959);
d <- data.frame(country,population,year,FIFAScore)
OutputDataSet <- ddply(d, c("country"), function(df) cor(df$FIFAScore,df$population));
'
, @input_data_1 = N''
WITH RESULT SETS (([Country] nvarchar(20) NOT NULL,[Cor] numeric(6,3)));

结果出现了以下消息:

消息 39004,层级 16,状态 20,行 0
执行 'sp_execute_external_script' 时发生 'R' 命令码错误,HRESULT 为 0x80004004。
消息 39019,层级 16,状态 1,行 0
发生外部命令码错误: 
Error in library("plyr") : there is no package called 'plyr'
Calls: source -> withVisible -> eval -> eval -> library

4.如何在R Service 安装R包? 查MSDN

Install Additional R Packages on SQL Server

这边我们选用R command-line utilities的方式

 a.在安装SQL Server  R SERVICE的目录中找到Rgui执行程序,按下右键以系统管理员身份执行。

C:Program FilesMicrosoft SQL ServerMSSQL13.SQL2016R_SERVICESbinx64

(SQL2016是Instance的名称)

b.输入以下R script

将library目录丢进lib.SQL变量,然后安装R包时指定安装到此目录。

这个目录必须要R Service所在的目录喔!!

lib.SQL <- "C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2016\R_SERVICES\library"
install.packages("plyr",lib=lib.SQL)

Console上的消息显示已经下载并安装成功

c.查询R package Library目录

4.重新执行以下刚刚相关系数的语法

可以正确载入plyr library并且执行了!!!

由于西班牙在2016的成绩相较2015是退步的,但各国的人口都增加了100万,可以发现除了西班牙,其他国家都是正相关。

小结:

   例如像是 @input_data_1 = N'SELECT * FROM Sales.Customer',下一篇笔记。

欧国杯小组赛,西班牙早上3:0 击败土耳其!!

挂上国旗来庆祝!!

ESP

参考:

Top 100 R packages for 2013 (Jan-May)!

欧洲国家人口数量列表

FIFA Rank

Install Additional R Packages on SQL Server

原文:大专栏  [SQL Server][R Language]In-Database R(二)安装R Package(R包)



标签:execute,Language,Database,Package,library,script,plyr,SQL,安装
来源: https://www.cnblogs.com/chinatrump/p/11472571.html