2017-08-22 1 views
0

Ich bin neu in R und ich arbeite an einem Skript, das Daten von einer REST-API erhält, verarbeitet und das Ergebnis lokal auf der Maschine speichert. Wenn ich das Skript auf meinem Rechner ausführe, funktioniert das einwandfrei, aber wenn ich das SAME-Skript auf einem anderen Rechner ausführe, erhalte ich einen Fehler ("fehlt, wo TRUE/FALSE benötigt wird", wenn das hilft). Ich weiß, dass dies eine vage Beschreibung des Problems ist, aber ich würde nicht wissen, was ich außer dem Posten des ganzen Quellcodes noch sagen könnte ... R, RStudio und alle Pakete sind auf dem neuesten Stand. Das Skript hat keine Parameter.R-Skript-Ausführung von verschiedenen Maschinen führen zu unterschiedlichen Ergebnissen

Ich bin auf der Suche nach einer Erklärung, warum das gleiche Skript auf Maschine 1 funktioniert und nicht auf Maschine 2 läuft. Fehle ich etwas R-verwandt, die dieses seltsame Verhalten erklären könnte?

+0

Sind beide die Maschine unter dem gleichen Betriebssystem? Was ist die API? Was ist die Funktion, die Sie ausführen? –

+0

Beide Win10, aber eine ist Home und die andere ist Professional. Es ist eine Swagger-API, die nicht öffentlich verfügbar ist. Ich nehme an, Sie sprechen über die programmatische Funktion, wo der Fehler auftritt - es kommt innerhalb einer Weile (val1 dcfyg

+0

Einer von val1 oder val2 ist möglicherweise nicht definiert. Ein Grund, der auf verschiedenen Computern möglicherweise anders funktioniert, ist, wenn Sie eine Bibliothek verwenden, die nur auf einer der Maschinen installiert ist. Hat Ihr Code einige 'library'- oder' require'-Anweisungen? – G5W

Antwort

0

Ich habe den Ursprung des Problems gefunden: RStudios Gebietsschema (überprüfen Sie mit SessionInfo()) auf beiden Maschinen unterschieden. Aus irgendeinem Grund wurde die Unix-Zeit in Mikrosekunden anstatt in Sekunden angegeben. Ich bemerkte, dass ein Funktionsargument "NA" war. Es scheint, dass der numerische Wert dieses Arguments zu hoch war und zu "NA" führte, was letztlich zu Fehlern führte.

Ich habe Sys.setlocale ("LC_ALL", "Englisch") verwendet, um die Einstellungen anzupassen.

Verwandte Themen