[R] paste data
Peter Dalgaard
P.Dalgaard at biostat.ku.dk
Wed Jun 18 11:11:20 CEST 2008
Sybille Wendel wrote:
> Hello,
>
> I need a command.
> I have a lot of data in different dataframes(auto.0a, auto.0b, auto.0c, auto.5Na,...), that has similar names.
>
> I could print the names all at once wih a loop with the command paste(), see below:
>
> plot<-c("0a","0b","0c","5Na","5Nb","5Nc","PKa","PKb","PKc","5NPKa","5NPKb",
> "5NPKc","10NPKa","10NPKb","10NPKc","20NPKa","20NPKb","20NPKc")
>
> for (x in 1:length(plot))
> {
> name<-paste("auto.",plot[x],sep="")
> print(name)
> }
>
> I want to do very similar things with all the dataframes and their structure is also the same.
> Is there a way to write a loop? (so that I don't have to write the same 18 times)
> I tried things like that:
>
> for (x in 1:length(plot))
> {
> plot(paste("auto.",plot[x],sep="")[,1],paste("auto.",plot[x],sep="")[,2],col=...)
> }
>
> But it doesn't work because it just takes the character "auto.0a".
>
>
The short answer is get(), but this is an opportunity to get yoursellf
acquainted with the mindframe of vectorization in R:
plotNames<-c("0a","0b","0c","5Na","5Nb","5Nc","PKa","PKb","PKc","5NPKa","5NPKb",
"5NPKc","10NPKa","10NPKb","10NPKc","20NPKa","20NPKb","20NPKc")
frames <- lapply(paste("auto", plotNames, sep="."), get)
plotOne <- function(f,n)
plot(f[1:2], title="n")
mapply(plotOne, frames, plotNames)
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list