在“R Interactive”标签中,我可以访问data.table。安装程序将其加载到我的个人文件夹中。 但是当我尝试使用SQL中的R
时EXECUTE sp_execute_external_script
@language = N'R'
, @input_data_1 = N' select top 2 TodayClosed as Closed, Industry from stockquotes SQ
inner join StockSymbols SS on SS.ID = SQ.StockId where TodayClosed is not null;'
, @script = N'
dtf <- data.frame(InputDataSet)
dt <- data.table(dtf)
dt[,list(mean=mean(Closed),sd=sd(Closed)),by=Industry]'
WITH RESULT SETS (([mean] float NULL, [sd] float NULL, Industry char(75) NULL));
我收到此错误:
找不到函数“data.table”
从其他错误消息中,我会说它正在“Program Files”下查找。 我试过安装它没有运气。
答案 0 :(得分:3)
首先,您必须将data.table包安装到R Services可以找到的位置。当SQL运行R存储过程时,它会使用不同的用户帐户。根据{{3}}
步骤3:为启动板帐户启用隐含身份验证
在安装过程中,会创建20个新的Windows用户帐户,以便在SQL Server受信任的Launchpad服务的安全令牌下运行任务。当用户从外部客户端发送R脚本时,SQL Server将激活可用的工作者帐户,将其映射到调用用户的身份,并代表用户运行R脚本。
因此,将找不到安装在用户目录树下的任何软件包。 R服务查找包的默认位置类似于C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library
,但您可能不应该在那里安装新包,否则您可能会遇到破坏的风险。而是选择或创建一个不同的,可全局访问的目录来安装。
其次,您必须将data.table加载到R会话中。插入
.libPaths("packagedir")
require(data.table)
位于R脚本的顶部,其中packagedir
是您选择的目录。