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

Tom Wright tom at maladmin.com
Sun May 1 04:03:59 CEST 2016


Never let it be said there's only one way to do a thing:

require(ggplot2)
require(dplyr)

#create a sample dataset
dat <- data.frame(y1=sample(c(1:10,NA),20,replace=TRUE),
                          y2=sample(c(1:10,NA),20,replace=TRUE),
                          y3=sample(c(1:10,NA),20,replace=TRUE))

# convert from wide to long
dat <- melt(dat)

# add the counts as a label
dat <- merge(dat,
          group_by(dat,variable) %>%
               summarise(lab=paste0('n=',length(na.omit(value)))))

# do the plot
ggplot(dat,aes(x=variable,y=value)) +
    geom_violin() +
    geom_text(aes(y=max(value,na.rm=TRUE)/2,label=lab))


# apologies to David Winsemius for directing this answer to him, I'll work
out how to use email one day.

On Sat, 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. 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??
>
> 2. Can I easily add the sample size to each violin plotted??
>
> thanks
>
> mike
>
>
>
> ---
> Mike Smith
>
> ______________________________________________
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list