Dear useRs,

This is to announce the RGtk2Extras R package currently in 0.5.1.

This package provides useful extras for R programmers who wish to create 
graphic user interfaces. It is based on GTK, using Michael Lawrence's RGtk2 
package and John Verzani's gWidgets, and some ideas from John Verzani's traitr 
package.

The first major feature of RGtk2Extras, the run.dialog function, is an 
interface for creating simple front-ends to R functions using a terse markup 
scheme. No GUI knowledge is required; if you can write an R function, you can 
create a dialog for it.

An example:

    # A function with one argument, N

  Histogram = function(N) hist(rnorm(N))

    # Dialog markup list for the function Histogram
    # Create the main dialog label with the first "label=" (optional)
    # Then (this is the important bit!) specify N.integerItem, where 
    #   (1) N is the function argument
    #   (2) integerItem is the type of widget to use, see ?run.dialog
    #   (3) the value 50 is the default
    # Then with the second "label=" add a label for the N item (optional)

  Histogram.dialog = list(label = "A density-plotting histogram dialog",
    N.integerItem = 50, label = "Value of N")
  
    # Run the dialog.
    # The returned list "a" has elements "args" for dialog arguments
    # and "retval" for the return value.
    # With auto.assign=TRUE, the return value is stored in "Histogram_output".
    # run.dialog also does error handling and supports interrupts for 
    # long running tasks, see ?run.dialog

  a <- run.dialog(Histogram, auto.assign=FALSE)

A more complex demo example, thanks to Graham Williams:

  demo(MakeAngle)


The second feature of RGtk2Extras is gtkDfEdit, an editable spreadsheet widget 
designed for editing data matrices and data frames. It's also based on RGtk2. 
This was released earlier as RGtk2DfEdit which was then folded into RGtk2Extras.

The gtkDfEdit spreadsheet is quite full featured and has been designed to be 
familiar to Excel users, while allowing most of the data frames and factor 
operations that are possible from the R command line.

Data frame columns are type-aware and there is a factor editor. Most functions 
can be accessed from right clicking on data columns or cells. There is undo, 
cross platform copy/paste, sorting, cell filling, and data loading 
capabilities. See ?gtkDfEdit.

The widget provided by gtkDfEdit() can be integrated into larger RGtk2 based 
user interfaces, or its standalone wrapper dfedit() can be used as a straight 
replacement for edit.data.frame().

There is also a rudimentary API for manipulating and binding event handlers to 
the spreadsheet. See ?gtkDfEditDoTask and ?gtkDfEditSetActionHandler.

# Edit the iris data frame
# Note the blank row at the bottom to allow pasting into rows below.
x = dfedit(iris)

# Example user interactions
1. Right click the "Species" column or column header to see or change the data 
type. Click "Edit Factors" to change factor levels or ordering.

2. Right click a column header and then click "Sort" to sort columns

3. Right click column header and change data type by selecting 
"Character"/"Integer" etc. Factors can be changed to integer levels ("To Factor 
Levels") or integers ("To Factor Ordering")

4. Right click column header to insert or delete columns or change column name.

5. Select a submatrix of numbers within "iris" and press the "=" key to bring 
up the Command Editor, then type "hist" in the command field and "OK" to create 
a histogram of the submatrix; "function(x) hist(x)" works as well.

6. Select a submatrix within "iris" and press Ctrl-V or right-click and select 
Copy to copy into an external spreadsheet; Ctrl-C works to paste into the data 
frame. Ctrl-Shift-V copies submatrix and row and column names.

7. Select a range of cells within "Species" column and right-click to select 
"Fill in Cycles" to fill cyclic factors.

8. Right click left hand corner cell to open CSV file into editor or save as 
file.

9. Right click left hand corner cell to set columns to default Excel-style 
column headers.

10. Ctrl-Z to undo previous edits. 
# End of examples

RGtk2Extras is still in a beta stage of development. It is hosted on 
r-forge.r-project.org/R/?group_id=924. Comments and suggestions appreciated; 
email thomas.taverner _AT_ pnl.gov

Thanks to the entire R community for their work, particularly the R Development 
Core Team, Michael Lawrence and John Verzani, and also Graham Williams and Iago 
Conde for comments.

Tom

_______________________________________________
R-SIG-GUI mailing list
R-SIG-GUI@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-gui

Reply via email to