R in SQL server: $ Operator ist für Atomvektoren ungültig

Ich versuche, einige meiner R-Skripts an SQL server zu portieren. Ich habe den folgenden R-Code:

titanic <- read.csv(titanicUri, header = TRUE) titanic <- titanic[complete.cases(titanic),] titanic$AgeGroup <- cut(titanic$Age, c(0,13,100), labels=c("Young","Old")) 

Ich habe eine Tabelle in SQL server erstellt und die data importiert. Wenn ich versuche, die 'cut' function so zu implementieren:

 EXECUTE sp_execute_external_script @language = N'R' , @script = N' titanic <- InputDataSet; titanic <- titanic[complete.cases(titanic),]; titanic$AgeGroup <- cut(titanic$Age, c(0,13,100), labels=c("Young","Old")); titanic <- data.frame(titanic); OutputDataSet <- titanic; ' , @input_data_1 = N' SELECT Name FROM Titanic;' WITH RESULT SETS (([PassengerName] varchar(Max))); 

Ich bekomme diesen Fehler (die complete.cases funktioniert gut)

Fehler in titanischen $ Alter: $ Operator ist für Atomvektoren ungültig

Msg 39004, Stufe 16, Zustand 20, Zeile 11
Bei der Ausführung von 'sp_execute_external_script' mit HRESULT 0x80004004 ist ein 'R' -Skripterrors aufgetreten.

Msg 39019, Ebene 16, Zustand 1, Zeile 11
Ein externer Skripterrors ist aufgetreten: Fehler bei titanischen $ Alter: $ Operator ist für Atomvektoren ungültig Anrufe: source -> mitVisible -> eval -> eval -> cut

Fehler bei ScaleR. Überprüfen Sie die Ausgabe für weitere Informationen. Fehler in eval (expr, envir, enclos): Fehler in ScaleR. Überprüfen Sie die Ausgabe für weitere Informationen. Anrufe: source -> mitVisible -> eval -> eval -> .Call Execution gestoppt

Msg 11536, Stufe 16, Zustand 1, Zeile 11
EXECUTE-statement fehlgeschlagen, da seine WITH RESULT SETS-Klausel 1 Ergebnismenge (n) angegeben hat, aber die statement nur 0 Ergebnismenge zur Laufzeit gesendet hat.

Danke im Voraus

Wie @TimGoodman kommentiert, ist Ihr Eingabedatensatz eine Spalte aufgrund der angegebenen SELECT Abfrage. Einfach erweitern Spalte list zu haben Alter zur Verfügung:

 @input_data_1 = N'SELECT * FROM Titanic;' 

Erwägen Sie auch, dass Sie den Ausgabedatensatz angeben. Sehen Sie hilfreiche mssqltips.com Führer .

 @output_data_1_name = N'titanic'