Holen Sie sich Daten aus einer tcltk-Funktion

Das ist wahrscheinlich so einfach, dass ich erschaudern werde, wenn die Antwort zurückkommt, aber ich bin total ratlos. Ich habe die Handbücher ausprobiert, versucht, im Internet zu suchen, verschiedene Beispiele und alles andere, was mir einfällt. Ich stecke immer noch fest.

Ich versuche, eine einfache Eingabe für den Benutzer zu erstellen, um zwei Werte hinzuzufügen, die ich dann im Rest des R-Skripts verwenden kann. Ich muss das Skript anhalten und auf die Eingabe vom Benutzer warten und dann fortfahren, sobald es die Eingabe erhält (wie die Funktion zum Auswählen von Dateien funktioniert). Nachdem ich ein paar Sachen gelesen hatte, entschied ich mich für die Bibliothek (tcltk). Ich habe eine schöne kleine Box innerhalb einer Funktion.

inputs <- function(){

   xvar <- tclVar("")
   yvar <- tclVar("")

   tt <- tktoplevel()
   tkwm.title(tt,"Input Numbers")
   x.entry <- tkentry(tt, textvariable=xvar)
   y.entry <- tkentry(tt, textvariable=yvar)

   reset <- function()
    {
     tclvalue(xvar)<-""
     tclvalue(yvar)<-""
    }

   reset.but <- tkbutton(tt, text="Reset", command=reset)

   submit <- function() {
     x <- as.numeric(tclvalue(xvar))
     y <- as.numeric(tclvalue(yvar))
     print(x)
     print(y)
     tkdestroy(tt)
   }
   submit.but <- tkbutton(tt, text="submit", command=submit)

   tkgrid(tklabel(tt,text="Enter Two Inputs"),columnspan=2)
   tkgrid(tklabel(tt,text="Input1"), x.entry, pady = 10, padx =10)
   tkgrid(tklabel(tt,text="Input2"), y.entry, pady = 10, padx =10)
   tkgrid(submit.but, reset.but)

  }

Wenn ich eingebe:

 inputs()

Die nette kleine Box erscheint und ich kann meine Werte eingeben, sagen wir 3 und 4 für dieses Beispiel.

Ich komme zurück

<Tcl>  
[1] 3
[1] 4

Ich möchte diese Nummer in einem nachfolgenden Teil des R-Codes verwenden. Wie bekomme ich sie, damit ich das Äquivalent dazu bekomme?

input1 <- 3
input2 <- 4

Vielen Dank im Voraus für Ihre Hilfe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage