Как обновить gtable в gWidget в R?

#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] .