2017-03-06 1 views
1

"R 대화식"탭에서 data.table에 액세스 할 수 있습니다. Installr이 내 개인 폴더에로드했습니다. 나는 SQLSQL에서 data.table을 활성화하는 방법

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)); 

에서 R을 사용하려고 해요 때 는하지만이 오류를 얻을 :

could not find function "data.table"

다른 오류 메시지에서를, 나는 그것이 '프로그램 파일'에서 찾고 말하고 싶지만. 운 좋게 설치해 보았습니다.

+0

질문에 ** 많은 ** 정보가 누락되었습니다. SQL Server의 * R Services *에 대해 이야기하고 있습니다. 이를 위해서는 먼저 SQL Server 2016 및 서비스 설치가 필요합니다. 다른 오류 메시지는 언급하지만 * 게시하지 마십시오. 필요한 패키지를 가져 오는 것을 잊었을 것입니다. * 모든 오류 메시지를 게시하고 설치 한 내용을 명시 적으로 설명하십시오. 적절한 패키지를 추가 했습니까? –

+0

어쨌든 ** ** 무작위로 설치 및 수정하지 마십시오. 아마 R, SQL Server, 컴퓨터 또는 그 모두를 파괴 할 것입니다. R 또는 SQL Server가 손상되지 않았습니다. 문서에서 샘플을 실행할 수 있습니까? –

+0

먼저,'data.table'을 설치 했습니까? 그것은 [패키지 설치 및 관리] (https://msdn.microsoft.com/en-us/library/mt709429.aspx)에 표시된대로로드해야하는 별도의 * 패키지입니다. –

답변

3

먼저 R Services가 찾을 수있는 위치에 data.table 패키지를 설치해야합니다. SQL은 R 저장 프로 시저를 실행할 때 다른 사용자 계정을 사용합니다. 이 때문에의 MSDN documentation:

Step 3: Enable Implied Authentication for Launchpad Accounts

During setup, 20 new Windows user accounts are created for the purpose of running tasks under the security token of the SQL Server Trusted Launchpad service. When a user sends an R script from an external client, SQL Server will activate an available worker account, map it to the identity of the calling user, and run the R script on behalf of the user.

당, 사용자 디렉토리 트리 아래에 설치된 모든 패키지를 찾을 수 없습니다. R Services가 패키지를 찾은 기본 위치는 C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library과 같지만 새 패키지를 설치하지 않아야합니다. 대신, 설치할 수있는 전역 적으로 액세스 할 수있는 다른 디렉토리를 선택하거나 만듭니다.

둘째, R 세션에 data.table을로드해야합니다. packagedir가 선택한 디렉토리가 당신의 R 스크립트의 상단에

.libPaths("packagedir") 
require(data.table) 

를 삽입합니다.

+0

@PanagiotisKanavos PK와 Hong Ooi의 의견 사이에서 나는이 문제를 해결할 수있었습니다. 나는 RServices에서 패키지를 설치하려고했지만 허가가 없었습니다 .CLD로 가서 흥미롭게도 그것을 해결했습니다. chron에 의존하여 수동으로 설치해야했습니다. – BWhite

관련 문제