>>> On Apr 30, 2016, at 12:58 PM, Mike Smith <m...@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.

>>> I have an input CSV with columns off irregular length that contain NAs. I 
>>> want to strip the NAs out and produce a multiple violin plot automatically 
>>> labelled using the headers. At the moment I do this

>>> Code: 
>>> ds1 = read.csv("http://www.lecturematerials.co.uk/data/spelling.csv";)
>>> library(vioplot)
>>> y6<-na.omit(ds1$y6)
>>> y5<-na.omit(ds1$y5)
>>> y4<-na.omit(ds1$y4)
>>> y3<-na.omit(ds1$y3)
>>> y2<-na.omit(ds1$y2)
>>> y1<-na.omit(ds1$y1)
>>> vioplot(y6, y5, y4,y3,y2,y1,horizontal=TRUE, names=c("Y6", 
>>> "Y5","Y4","Y3","Y2","Y1"), col = "lightblue")


>>> Two queries:

>>> 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?). So this works, 

library(vioplot)
ds1 = read.csv("http://www.lecturematerials.co.uk/data/spelling.csv";)
ds2 <- lapply( ds1, na.omit)
vioplot(ds2$y1,ds2$y2)

but this doesnt

library(vioplot)
ds1 = read.csv("http://www.lecturematerials.co.uk/data/spelling.csv";)
ds2 <- lapply( ds1, na.omit)
vioplot(ds2)

>>> 2. Can I easily add the sample size to each violin plotted??

>>> ?violplot
>> No documentation for ‘violplot’ in specified packages and libraries:
>> you could try ‘??violplot’

DW> I see that I mispled that _package_ name. However, after loading
DW> it I realized that I had no way of replicating what you are
DW> seeing, because you didn't provide that file (or even something
DW> that resembles it. It's rather unclear how you wanted this information 
presented.

The original code *should* have worked as the csv was online. There doesnt seem 
to be any option in vioplot to add the sample size (these are all small samples 
which I wanted to highlight) so I dont know if this is easily done elsewhere.

Thanks again!!
---
Mike Smith

______________________________________________
R-help@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.

Reply via email to