2016-04-03 4 views
0

Ich bin neu in R und ich bin in einer sehr einfachen Aufgabe fest.Wie warten auf Benutzereingaben in R-Skript lief von Windows CMD

Ich möchte ein R-Skript von der Konsole ausführen, aber ich möchte das Skript in der Lage sein, Benutzereingaben zu lesen. Diese

ist, wie ich aus dem Skript zu lesen:

library = readLines(n = 1L) 
    if(library == "1") 
    { 
    library = "GUDHI" 
    } 

Und das ist, wie ich mein Skript von R-Portable mit einem .bat läuft:

@echo on 
cd.. 
cd.. 
cd.. 
cd.. 
cd.. 

PATH C:\Users\MyUser\Desktop\App\RFolder\R-Portable\App\R-Portable\bin;%path% 
cd C:\Users\MyUser\Desktop\App\RFolder 
Rscript Phom.R 1 
pause 

Als ich diese laufen .bat ein Fehler führt (Argument ist der Länge Null):

enter image description here

Als würde die Konsole nicht auf Benutzereingaben warten.

Das Problem ist nicht der .bat-Code. Wenn ich die readLines Funktionen aus meinem Skript entferne und die Eingabe hartkodiere, funktioniert es einwandfrei. Ich versuchte auch die readline Funktion mit keinem Erfolg.

Danke.

Antwort

1

Lösung für interaktive R-Skript aus dem Windows CMD:

cat("Prompt Message: ") 
    library = readLines(con = "stdin", 1) 

Ich bin mir nicht sicher, ob die Aufforderung muss am Ende mit „:“, aber ich hatte Probleme, wenn ich das Stück Schnur entfernt.

Das funktionierte für mich, ich hoffe, das hilft jemandem.