Suppose I have a nx2 matrix of data, X, the following code generate density estimation for each column and plot them denlist <- apply(X, 2, density) par(mfrow=c(1,2)) lapply(denlist, plot) Does anyone know how to change the main title of each density plot to "var 1", "var 2" by passing optional argument "main"? I've tried lapply(denlist, plot, main=c("var 1", "var 2")) which generates two same titles "var 1/var 2" and "var 1/var 2" lapply(denlist, plot, main=list("var 1", "var 2")) which generates two same titles "var 1" Both are not I want. -- Pingping Zheng Department of Mathematics and Statistics Fylde College Lancaster University Lancaster LA1 4YF UK
Pingping Zheng wrote:> Suppose I have a nx2 matrix of data, X, the following code generate > density estimation for each column and plot them > > denlist <- apply(X, 2, density) > par(mfrow=c(1,2)) > lapply(denlist, plot) > > Does anyone know how to change the main title of each density plot > to "var 1", "var 2" by passing optional argument "main"? I've tried > > lapply(denlist, plot, main=c("var 1", "var 2")) > which generates two same titles "var 1/var 2" and "var 1/var 2" > > lapply(denlist, plot, main=list("var 1", "var 2")) > which generates two same titles "var 1" > > Both are not I want. >If the title is contained in denlist, you can specify a anonymous function, if not, use mapply or simply a for() loop. Uwe Ligges
an indirect solution is the following: lapply(seq(along=denlist), function(i) plot(denlist[[i]], main=paste("var", i))) I hope it helps. Best, Dimitris ---- Dimitris Rizopoulos Ph.D. Student Biostatistical Centre School of Public Health Catholic University of Leuven Address: Kapucijnenvoer 35, Leuven, Belgium Tel: +32/16/336899 Fax: +32/16/337015 Web: http://www.med.kuleuven.ac.be/biostat/ http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm ----- Original Message ----- From: "Pingping Zheng" <pingping.zheng at lancaster.ac.uk> To: <r-help at stat.math.ethz.ch> Sent: Friday, March 18, 2005 12:40 PM Subject: [R] passing arguments to FUN in lapply> Suppose I have a nx2 matrix of data, X, the following code generate > density estimation for each column and plot them > > denlist <- apply(X, 2, density) > par(mfrow=c(1,2)) > lapply(denlist, plot) > > Does anyone know how to change the main title of each density plot > to "var 1", "var 2" by passing optional argument "main"? I've tried > > lapply(denlist, plot, main=c("var 1", "var 2")) > which generates two same titles "var 1/var 2" and "var 1/var 2" > > lapply(denlist, plot, main=list("var 1", "var 2")) > which generates two same titles "var 1" > > Both are not I want. > > -- > Pingping Zheng > Department of Mathematics and Statistics > Fylde College > Lancaster University > Lancaster LA1 4YF > UK > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html >
Pingping Zheng <pingping.zheng <at> lancaster.ac.uk> writes: : : Suppose I have a nx2 matrix of data, X, the following code generate : density estimation for each column and plot them : : denlist <- apply(X, 2, density) : par(mfrow=c(1,2)) : lapply(denlist, plot) : : Does anyone know how to change the main title of each density plot : to "var 1", "var 2" by passing optional argument "main"? I've tried : : lapply(denlist, plot, main=c("var 1", "var 2")) : which generates two same titles "var 1/var 2" and "var 1/var 2" : : lapply(denlist, plot, main=list("var 1", "var 2")) : which generates two same titles "var 1" : : Both are not I want. : Try mapply instead of lapply: mapply(plot, denlist, main = paste("var", 1:2))
See Andy Liaw's and my suggestion to this post http://files.protsuggest.org/biocond/html/7818.html On Fri, 2005-03-18 at 11:40 +0000, Pingping Zheng wrote:> Suppose I have a nx2 matrix of data, X, the following code generate > density estimation for each column and plot them > > denlist <- apply(X, 2, density) > par(mfrow=c(1,2)) > lapply(denlist, plot) > > Does anyone know how to change the main title of each density plot > to "var 1", "var 2" by passing optional argument "main"? I've tried > > lapply(denlist, plot, main=c("var 1", "var 2")) > which generates two same titles "var 1/var 2" and "var 1/var 2" > > lapply(denlist, plot, main=list("var 1", "var 2")) > which generates two same titles "var 1" > > Both are not I want. >