Ich habe ein Skript in JMP geschrieben, das R verwendet, um einem Kunden zu helfen, bestimmte Informationen aus seinem Datensatz zu extrahieren. Er hatte R noch nie zuvor installiert, also habe ich ihm dabei geholfen (so wie ich es Dutzende Male getan habe). Mein Skript gibt einen Fehler aus, wenn JMP R auf dem Computer nicht finden kann (es verwendet eine Throw(rconn = R Connect();,...)-Anweisung). JMP lief, als R installiert wurde, ich habe das Skript ausgeführt und es konnte R nicht finden. Ich habe JMP beendet, neu gestartet – derselbe Fehler. Ich habe den Computer neu gestartet, das Skript ausgeführt – derselbe Fehler. Ich habe R deinstalliert, JMP beendet, R installiert, JMP gestartet – derselbe Fehler. Ich frage mich also, ob ich JMP helfen kann, R zu finden, indem ich das Ziel angebe? In den JMP-Supportdateien steht:
How JMP Finds R
JMP delays loading R until a JSL-based script requires access to it. When JMP needs to load R, it follows the standard steps for finding R on a Windows computer:
1.Look up the environment variable R_HOME.
If the variable exists, load R from the specified directory.
2.If the environment variable R_HOME does not exist, look up the InstallPath value in the Windows registry under the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\R-core\R
For 32-bit JMP running on a 64-bit machine, the InstallPath value is under the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\R-core\R
If the InstallPath value exists, load R from the specified directory.
3.If the InstallPath value does not exist, an error message states that R could not be found.
Kann ich die Umgebungsvariable R_HOME angeben oder den InstallPath-Wert weitergeben?
Es stellte sich heraus, dass die Lösung darin bestand, dass der Benutzer keine Administratorrechte auf dem Computer hatte (anscheinend hatte er welche, da er R installieren konnte). Nachdem wir R deinstalliert, Administratorrechte angefordert und R neu installiert hatten, funktionierte alles einwandfrei.
Ich möchte darauf hinweisen, dass weitere Untersuchungen ergeben haben, dass sich der Registrierungsschlüssel in HKEY_LOCAL_USER\... befindet und nicht in HKEY_LOCAL_MACHINE\...
Ich weiß nicht, warum bei dieser Person der Schlüssel „R“ dort steht und nicht bei mir und allen anderen, aber meine Frage bleibt bestehen: Kann ich JMP einfach anweisen, nach einem anderen Registrierungsschlüssel zu suchen?