[R] Removing NAs from dataframe (for use in Vioplot)
Martin Maechler
maechler at stat.math.ethz.ch
Mon May 2 19:28:22 CEST 2016
>>>>> Bert Gunter <bgunter.4567 at gmail.com>
>>>>> on Mon, 2 May 2016 06:20:52 -0700 writes:
> Martin et. al.:
> na.omit(frame) will remove all rows/cases in which an NA occurs. I'm
> not sure that this is what the OP wanted, which seemed to be to
> separately remove NA's from each column and plot the resulting column.
> This is what the lapply (and the OP's provided code) does, anyway.
> Also, lapply() produces a single list (of vectors), not a "series of lists" .
> Corrections happily accepted if I'm in error.
No corrections needed. You were right ... and indeed I was
wrong in assuming that "one would want" a complete na.omit()
here.
Martin
> Cheers,
> Bert
> Bert Gunter
> "The trouble with having an open mind is that people keep coming along
> and sticking things into it."
> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
> On Mon, May 2, 2016 at 1:49 AM, Martin Maechler
> <maechler at stat.math.ethz.ch> wrote:
>>>>>>> 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.
>>
>> [yes!]
>>
>>
>> >>>> 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.
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list