Я пытаюсь разработать небольшой виджет, в котором я могу ввести число в диалоговом окне, а затем сохранить этот номер в моем рабочем пространстве для дальнейшего использования позже, однако я новичок к R, и мне трудно получить ввод текста после ввода его в виджет. Я нашел некоторые темы о том, как передавать информацию из одного виджета в другой, но не вернуться в рабочую область. Единственный способ заставить его работать - запустить код ко второй последней строке и вручную запустить последнюю строку отдельно. Кто-нибудь может мне помочь???Как вы выводите вход gedit в R в рабочее пространство Rstudio
# clearing workspace
rm(list = ls())
# Loading packages
library(gWidgets)
library(gWidgetstcltk)
# Setting up Widget
win=gwindow(title='Experiment setup',visible = TRUE)
grp_name <- ggroup(container = win)
okbut<-ggroup(container = win)
lbl_data_frame_name <- glabel(
'Choose number of indexing variables: ',
container = grp_name
)
#Asking user for input
obj<-gedit(container=grp_name,handler=function(h,..){
print(as.integer(svalue(h$obj)))
}, action = dispose(win))
#Attempt to return text from user input to workspace
textfromgedit=svalue(obj)
Я подозреваю, что вам может понадобиться сохранить этот скрипт в виде файла, например. 'script.R', затем вызовите файл с помощью' source ("script.R") '. Это делает трюк? – CephBirk
Я думаю, что вы ищете 'ginput'. Это использование 'gedit' с действием' dispose (win) 'является неправильным. Если вы хотите очистить окно во время обработчика, добавьте его в обработчик и сохраните значение в обработчике. Для этого вам нужно назначить в другую среду. Эта задача обычно выполняется с помощью '<< -'. – jverzani
Спасибо, ребята, я попробовал оба. Использование в другом скрипте не выводило входной текст в качестве переменной в рабочую область, ginput работал, однако мне не удалось встроить окно ginput в исходный контейнер. Я хочу сделать это, так как в конечном итоге это будет подмножество окон ввода в одном контейнере. Я подумал, установив параметр «родительский» или «виджет» в ginput в качестве контейнера (в этом случае имя grp_name), что он будет внедрять ginput, но это не так. Есть идеи? Спасибо за вашу помощь. Его очень ценят !!!! –