R packages

The Gmisc and Greg package contain useful functions for graphics, tables etc that I’ve created/adapted for my own research. Gmisc was published on CRAN 2014-02-02. As some of the regression functions weren’t stable enough for going public I’ve moved these into the new Greg-package.

Version 1.0

I’m currently working on the 1.0 version of both the Gmisc and the Greg packages. The 1.0 version will contain a few API-changes in order to streamline and hopefully making the multitude of options easier to comprehend. If you have any suggestions they are very welcome. You can download and play around with the new version by specifying the ref="v1.0" as below:

?View Code RSPLUS
1
2
3
4
5
6
7
8
9
10
# If you haven't installed devtools before, 
# now is the time by uncommenting next line:
# install.packages("devtools")
 
# Install the Gmisc package using:
devtools::install_github("gforge/Gmisc", ref="v1.0")
 
# After installing the Gmisc package 
# you can install the Greg package using:
devtools::install_github("gforge/Greg", ref="v1.0")

API-changes for the htmlTable:

  • rowname -> rnames
  • headings -> header
  • halign -> align.header
  • cgroup.just -> align.cgroup
  • rgroupCSSstyle -> css.rgroup
  • rgroupCSSseparator -> css.rgroup.sep
  • tspannerCSSstyle -> css.tspanner
  • tspannerCSSseparator -> css.tspanner.sep
  • rgroup.padding -> padding.rgroup
  • rowlabel.pos -> pos.rowlabel
  • caption.loc -> pos.caption
  • altcol -> col.rgroup
  • tableCSSclass -> css.table.class

Package GitHub

As CRAN limits the update frequency to 1-2 months you can download the most recent package from GitHub. The Greg package will hopefully reach maturity autumn 2014 but until then you can download them using the devtools package:

?View Code RSPLUS
1
2
3
4
5
6
7
8
9
10
# If you haven't installed devtools before, 
# now is the time by uncommenting next line:
# install.packages("devtools")
 
# Install the Gmisc package using:
devtools::install_github("gforge/Gmisc")
 
# After installing the Gmisc package 
# you can install the Greg package using:
devtools::install_github("gforge/Greg")

Writing documentation is hard and any suggestions are greatly appreciated. Try also to check that the output makes sense as bug-hunting is a difficult and endless task. If you want to suggest some changes, please use the GitHub-version as it has all the roxygen documentation and all my comments.

Some of the neat Gmisc functions that you will find are:

  • forestplot2 – an adaptation of the rmeta package forestplot with some additional tweaks
  • htmlTable (see also examples here) – it is often difficult to convert LaTeX into word without some loss to design, therefore I’ve created an alternativ to the Hmisc latex() function with basically the same parameters and output but that works in markdown. You can now simply copy-paste the table into Word.
  • getDescriptionsStatsBy – for generating a table 1 this is a very useful function that makes this much easier.
  • transitionPlot – for generating a transition plot
  • bezierArrowSmpl/bezierArrowSmplGradient – nicer alternatives to the default bezier arrow.

And the Greg-package contains among other things:

  • printCrudeAndAdjusted – a useful function for generating a table with a models crude and adjusted estimates.
  • plotHR – this is based upon r-forge Reinhard Seifert’s plotHR function. The function allows multiple models to be plotted on top of eachother, when used together with transparency (the alpha channel of the rgb) it is very convenient for comparing different subgroups, time-spans or adjusted/unadjusted regressions.

I hope you find the packages as useful as I do. And in case you were wondering – Yes, the Gmisc name is a ripoff from Frank Harrell’s useful Hmisc-package.

Max

flattr this!

10 Responses to R packages

  1. Fr. says:

    Unfortunately, the current installation code does fail on Macs: here’s its output on R 3.0.0.

    • Max Gordon says:

      Hmm… seems to be some issue with the rms-package. Have you tried installing without the dependencies?

      • Fr. says:

        It works if you install “rms” separately:

        install.packages("rms")
        reps = c("http://ftp.sunet.se/pub/lang/CRAN",
                 "http://cran.gforge.se")
        install.packages("Gmisc", repos = reps, dependencies = FALSE, type = "source")

  2. Pingback: Some Results | Shige's Results

  3. Peter says:

    Hi,

    I am currently playing around with your transition plots and I like it very much.

    Features missing I think are options for setting headers and subtitles as well as enabling the user to give all boxes individual texts. I tried the latter in order to also give an information about reaction times in a pre-post-measurement design, but now I get the error:

    Error: could not find function “getGridVal”

    while I have a help file available on that function, it is neither in my workspace after loading Gmisc, nor can I find in your Gmisc github repository.

    What happended here?

    • Max Gordon says:

      The latest version allows for creating your own layout around the plot, just push a grid viewport(), plot using the newpage=FALSE into that viewport. Also, see if you still get the error after setting the newpage=TRUE – there may be some old plot info that causes issues. I’m planning on adding the header option, unfortunately I haven’t had time to implement it yet but you can have a look at the forestplot2() that has the header option working in a similar fashion.

      You can put any text you want in your boxes, I’m currently writing an article on Charnley classification A, B and C before and one year after surgery. In the transitionPlot() call I simply have:

      box_txt=cbind(c("Charnley\nclass\nA", "B", "C\nPre-op."), c("Charnley\nclass\nA", "B", "C\nPost-op."))

  4. Abhinaba Roy says:

    Hi Max,

    I really liked ‘transitionPlot’ function in Gmisc package.
    However I would like to know if we can have a transition plot like
    A >> B >> C

    • Max Gordon says:

      Hi Abhinaba,

      I’ve had this request posted previously but I haven’t had the time to implement it yet. It is not incredibly difficult, but it would require some rethinking. If you want to try to adapt the code you are welcome to write a suggestion for the package. Just fork the Github-repository and write a suggestion. You probably don’t need to get down to the details as the major sections are ready-to-use building blocks. I will try to help you the best I can.

      /Max

  5. Jay Rotella says:

    Thanks for all your great efforts on your packages and tutorials. They’re really helpful. However, when I try to run the last R code chunk, I get an error that reads as below and halts execution:

    Error in missing(xlab) : ‘missing’ can only be used for arguments
    Calls: … withCallingHandlers -> withVisible -> eval -> eval -> forestplotRegrObj
    In addition: Warning message:
    In fix_options(params) :
    You must not set both chunk options out.width and fig.retina

    • Max Gordon says:

      Ok, fixed it. In the version 1.0 I’m trying to make the functions cleaner and I happened to overdo the cleaning. Re-install from Github and see if it works better now.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>