#r #gwidgets #gtable
#r #gwidgets #gtable
Вопрос:
Я изо всех сил пытаюсь обновить данные таблицы в следующем коде для GUI. Он добавляет каждый новый запрос к предыдущему, чтобы он не помещался на экране, в то время как мне нужно заменить старый запрос на новый. Спасибо! A.
require ( gWidgets )
options ( guiToolkit="RGtk2" )
window <- gwindow ( "Pilot>>" , visible = FALSE, horizontal = FALSE )
paned <- gpanedgroup ( cont = window )
group <- ggroup ( cont = paned, horizontal = FALSE )
glabel ( "FPC:" , cont = group )
entry <- gedit ( "" , cont = group )
entry [ ] <- actfpc$CURFPC ##list of codes for auto-filling
search_button <- gbutton ( "Go!" , cont = group )
addSpring ( group )
frame <- gframe ( "Supply:" , cont = paned , horizontal = FALSE,use.scrollwindow=TRUE )
addHandlerChanged ( search_button , handler = function ( h , ... ) {
##Data subset for entered value
a<-skulist[skulist$FPC==svalue(entry),]
a<-a[c("X_id","FPC","STATUS","COMMENT","DCTR","DCSTOCK")]
tbl <- gtable ( a , cont = frame, expand=TRUE )
} )
size ( frame) <- c ( 950 , 250)
visible ( window ) <- TRUE
Комментарии:
1. Используется
[<-
для обновления данных, отображаемыхgtable
(как вы бы поступили с фреймом данных). У вас могут возникнуть проблемы, так как столбцы должны оставаться одного типа. Если вы хотите реструктурировать отображаемые данные, вы можете удалить старый виджетdelete
и заменить его новым.2. @jverzani хотите расширить это в ответ?
3. Если
tbl <- gtable(mtcars, cont=...)
, скажем, вы должны иметь возможность изменять одно значение с помощьюtbl[1,1] <- 12
или заменять весь набор данных чем-то вродеtbl[] <- mtcars[1:2, 1:4]
.