[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万,可以发现除了西班牙,其他国家都是正相关。
小结:
- 最佳数据的来源: 透过T-SQL语法将数据表的数据读出输入到@input_data_1
例如像是 @input_data_1 = N'SELECT * FROM Sales.Customer',下一篇笔记。
- FIFA成绩和人口增长应该没有必然的关系啦。
- 冰岛人口30万人,FIFA排名34。
欧国杯小组赛,西班牙早上3:0 击败土耳其!!
挂上国旗来庆祝!!
参考:
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