[R] Removing NAs from dataframe (for use in Vioplot)

Martin Maechler maechler at stat.math.ethz.ch
Mon May 2 10:49:20 CEST 2016

>>>>> Mike Smith <mike at hsm.org.uk>
>>>>>     on Sun, 1 May 2016 08:15:44 +0100 writes:

    >>>> On Apr 30, 2016, at 12:58 PM, Mike Smith
    >>>> <mike at hsm.org.uk> wrote: Hi

    >>>> First post and a relative R newbie....

    >>>> I am using the vioplot library to produce some violin
    >>>> plots.

    DW> It's a package, .... not a library.


    >>>> 1. Is there a more elegant way of automatically
    >>>> stripping the NAs, passing the columns to the function
    >>>> along with the header names??

    >>> ds2 <- lapply( ds1, na.omit)

    > Fantastic - that does the trick! Easy when you know how!!

    > Follow-on: is there a way feed all the lists from ds2 to
    > vioplot? It is now a series of lists (rather than a
    > dataframe - is that right?).

Yes, that's right.  So after all the above was not really
perfect :

  na.omit() has been designed as a generic function and has always
  had a method for "data.frame"; so, really

    ds.noNA <- na.omit(ds1)
or  ds0NA   <- na.omit(ds1)

(choosing "expressive names")

is what you want.

More information about the R-help mailing list