встроить функцию в gWidgets

Есть ли способ встроить функцию edit(dataframe) в gwindow? пример:

DataFrame <- data.frame(cbind(1,1:10)
edit(DataFrame)
Window <- gwindow()

Я хотел бы встроить edit(DataFrame) в Window.

Апостолос


person Apostolos Polymeros    schedule 21.12.2011    source источник


Ответы (1)


Стандартный способ сделать это — нажать кнопку.

dfr <- data.frame(x = 1:10, y = runif(10))
win <- gwindow()
btnEdit <- gbutton(
  "Edit", 
  container = win,
  handler = function(h, ...) dfr <<- edit(dfr)
)

Вы можете проявить еще большую изобретательность и решить, должен ли фрейм данных быть доступным для редактирования или только для просмотра.

win <- gwindow()
btnEdit <- gbutton(
  "Edit", 
  container = win,
  handler = function(h, ...) 
  {
    if(svalue(chkReadonly)) View(dfr) else dfr <<- edit(dfr)
  }
)
chkReadonly <- gcheckbox(
  "Read-only", 
  FALSE,
  container = win,
  handler = function(h, ...) 
  {
    svalue(btnEdit) <- if(svalue(h$obj)) "View" else "Edit"
  }
)

Судя по вашему комментарию, то, что вы хотите, еще проще. Сохраните фрейм данных в файле gdf.

tbl <- gdf(dfr, container = win)
person Richie Cotton    schedule 21.12.2011
comment
Приведенный выше код встраивает кнопку в виджет, но я хочу встроить в него вывод функции.TNX - person Apostolos Polymeros; 21.12.2011
comment
Что ж, Ричи ответил так, как ответил бы я (ну, на самом деле лучше), но вы, возможно, ищете присваивание объекту tbl, который он создает с помощью [‹- ? - person jverzani; 21.12.2011