[R] Feed list of vectors to vioplot()?

Johannes Graumann johannes_graumann at web.de
Thu Apr 24 15:26:46 CEST 2008


Dirty solution: switched off x-axis plotting via 'par' and added it the
personalized way with 'axis'.

Joh

Johannes Graumann wrote:

> Hm, now I have trouble using additional "vioplot" parameters.
> 
> mu<-2
> si<-0.6
> bimodal<-c(rnorm(1000,-mu,si),rnorm(1000,mu,si))
> uniform<-runif(2000,-4,4)
> normal<-rnorm(2000,0,3)
> mylist <- list(bimodal,uniform,normal)
> # Easy
> do.call(vioplot,mylist)
> # Works
> do.call(vioplot,c(mylist,col="white"))
> # Does not
> # vioplot expects "names" as a "plain" vector, not in the
> # form "names=c("One","Two","Three")" ...
> names <- c("One","Two","Three")
> do.call(vioplot,c(mylist,col="white",names))
> 
> Any help on how to do this?
> 
> Thanks, Joh
> 
> 
> Johannes Graumann wrote:
> 
>> Off-list it was pointed out to me that the trivial solution to this would
>> look like this:
>> myfunction2 <- function(x, ...){
>>   mylist <- list(x, ...)
>>   # plenty of "lapply" stuff
>>   do.call(vioplot,mylist)
>> }
>> 
>> Thanks for everybodies patience,
>> 
>> Joh
>> 
>> Johannes Graumann wrote:
>> 
>>> <posted & mailed>
>>> 
>>> Thanks for the very appropriate scolding.
>>> 
>>> Here's my example (based on "?vioplot"):
>>> mu<-2
>>> si<-0.6
>>> bimodal<-c(rnorm(1000,-mu,si),rnorm(1000,mu,si))
>>> uniform<-runif(2000,-4,4)
>>> normal<-rnorm(2000,0,3)
>>> # Working just fine
>>> myfunction1 <- function(x, ...){vioplot(x,...)}
>>> myfunction1(bimodal,uniform,normal)
>>> # What I (believe to) need
>>> myfunction2 <- function(x, ...){
>>>   mylist <- list(x, ...)
>>>   # plenty of "lapply" stuff
>>>   vioplot(mylist)
>>> }
>>> myfunction2(bimodal,uniform,normal)
>>>         --> Error in min(data) : invalid 'type' (list) of argument
>>> 
>>> I'm at a loss on how to disentangle "mylist" - unlist just gives me one
>>> big vector back rather than the 3 I want to have back ...
>>> 
>>> Thanks for your patience, Joh
>>> 
>>> jim holtman wrote:
>>> 
>>>> PLEASE do read the posting guide
>>>> http://www.R-project.org/posting-guide.html and provide commented,
>>>> minimal, self-contained, reproducible code.
>>>> 
>>>> It is hard to provide a solution if we do not understand the problem
>>>> to be solved.  Sample data would be helpful along with an
>>>> understanding of what you would expect for output.
>>>> 
>>>> On Wed, Apr 23, 2008 at 10:11 AM, Johannes Graumann
>>>> <johannes_graumann at web.de> wrote:
>>>>>
>>>>> Johannes Graumann wrote:
>>>>>
>>>>> > Hi,
>>>>> >
>>>>> > I have a list of vectors and am trying to coerce them into something
>>>>> > that vioplot will take as groups of data to be plotted
>>>>> > independently. Can someone nudge me into the right direction?
>>>>> >
>>>>> > Thanks, Joh
>>>>> >
>>>>> > ______________________________________________
>>>>> > R-help at r-project.org mailing list
>>>>> > 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.
>>>>>
>>>>> I'll try less impolite and with more info ...
>>>>>
>>>>> I'm writing a function that contains this:
>>>>>
>>>>> # function(x, ... , morestuff){}
>>>>>
>>>>> which is gathered into a list like so:
>>>>>
>>>>> # mylist <- list(x, ...)
>>>>>
>>>>> down the line I'd like to output all elements from "mylist" in
>>>>> seperate vioplots in a single coordiante system. Now I have a hell of
>>>>> a time with that because vioplot does not accept a list as input but
>>>>> only a succession of vectors ... how can I now force my list into that
>>>>> form so a can say
>>>>>
>>>>> # vioplot(magicfunction(mylist))
>>>>>
>>>>> and get a violin plot for each list-member?
>>>>>
>>>>> Thanks for any hint,
>>>>>
>>>>>
>>>>> Joh
>>>>>
>>>>> ______________________________________________
>>>>> R-help at r-project.org mailing list
>>>>> 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.
>>>>>
>>>> 
>>>> 
>>>>
>>> 
>>> ______________________________________________
>>> R-help at r-project.org mailing list
>>> 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.
>> 
>> ______________________________________________
>> R-help at r-project.org mailing list
>> 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.
> 
> ______________________________________________
> R-help at r-project.org mailing list
> 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