# [R] Run function several times changing only one argument - without a loop

Eik Vettorazzi E.Vettorazzi at uke.de
Mon Feb 20 11:49:55 CET 2012

```Hi Marion,
you can either use any of the *apply-functions or vectorize your
function (which internally uses mapply):

par(las=1)
par(mar=c(5,13,4,2))
barplot(Ee1,horiz=T,col="grey85",border="NA",xlim=c(0,100),axes=F)

#using sapply
invisible(sapply((1:9)*10,function(x)axis(2,pos=x,tick=T, tcl=F,
labels=F,col="white")))

#using Vectorize
barplot(Ee1,horiz=T,col="grey85",border="NA",xlim=c(0,100),axes=F)
vaxis<-Vectorize(axis,"pos")
invisible(vaxis(2,pos=(1:9)*10, tick=T, tcl=F, labels=F,col="white"))

Cheers!

Am 20.02.2012 11:04, schrieb Marion Wenty:
> Dear people,
>
> I created a plot which looks like this:
>
> Ee1<-matrix(c(88,86,74,62,41),ncol=5)
> colnames(Ee1)<-c("Lehrer","Lehrerinnen","Klassenkollegen","Klassenkolleginnen","Geschwister")
> par(las=1)
> par(mar=c(5,13,4,2))
> barplot(Ee1,horiz=T,col="grey85",border="NA",xlim=c(0,100),axes=F)
> axis(2,pos=10, tick=T, tcl=F, labels=F,col="white")
> axis(2,pos=20, tick=T, tcl=F, labels=F,col="white")
> axis(2,pos=30, tick=T, tcl=F, labels=F,col="white")
> axis(2,pos=40, tick=T, tcl=F, labels=F,col="white")
> axis(2,pos=50, tick=T, tcl=F, labels=F,col="white")
> axis(2,pos=60, tick=T, tcl=F, labels=F,col="white")
> axis(2,pos=70, tick=T, tcl=F, labels=F,col="white")
> axis(2,pos=80, tick=T, tcl=F, labels=F,col="white")
> axis(2,pos=90, tick=T, tcl=F, labels=F,col="white")
>
> Now I would like to shorten the whole thing - namely use only one step to
> create the 9 axes without having to use a loop.
>
> In general, I would be interested if there is a way to use a function
> several times changing only one argument, without having to use a loop.
>
> Does anyone know how to do that.
>
> Marion
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> and provide commented, minimal, self-contained, reproducible code.

--
Eik Vettorazzi
Institut für Medizinische Biometrie und Epidemiologie
Universitätsklinikum Hamburg-Eppendorf

Martinistr. 52
20246 Hamburg

T ++49/40/7410-58243
F ++49/40/7410-57790

--
Pflichtangaben gemäß Gesetz über elektronische Handelsregister und Genossenschaftsregister sowie das Unternehmensregister (EHUG):

Universitätsklinikum Hamburg-Eppendorf; Körperschaft des öffentlichen Rechts; Gerichtsstand: Hamburg

Vorstandsmitglieder: Prof. Dr. Guido Sauter (Vertreter des Vorsitzenden), Dr. Alexander Kirstein, Joachim Prölß, Prof. Dr. Dr. Uwe Koch-Gromus

```