Hi,

It is not clear what you really want.  Now, you mentions ?merge() etc.  If you 
don't want to use ?assign(),

lst <- list(as.data.frame(matrix(1:40,ncol=5)), 
as.data.frame(matrix(1:20,ncol=4)), 
as.data.frame(matrix(1:25,ncol=5)),as.data.frame(matrix(21:30,ncol=2)))

 stations <- c("BETB011", "BETM204", "BETN029","BETN043")
 names(lst) <- paste(stations, "PM",sep="_") 
head(lst$BETB011_PM,2)
# V1 V2 V3 V4 V5
# 1  1  9 17 25 33
# 2  2 10 18 26 34 

#or
attach(lst) #not recommended.  


head(BETB011_PM,2)
# V1 V2 V3 V4 V5 
#1  1  9 17 25 33 
#2  2 10 18 26 34 


A.K.


Hello, 
thank you for your answer. I think its already a little too advanced for me. 
I would appreciate if you would just give me a hint to the construction of the 
several data frames (so maybe without the assign function). 
i can merge the other data frames via the merge function, so thats not an issue 
for me at the moment. 
But in order to merge the data it would be handy to create the data frames 
upfront. 
Therefore, a for loop would be nice that simply creates data frames for every 
station in the station data frame and names them accordingly. 
I assume its sth like  stations <- c("BETB011", "BETM204", "BETN029","BETN043") 
for (i in 1:length(stations) 
{[i] <- data.frame(stations[i])}  Would be nice then to have 4 data.frames 
named BETB011, BETM204, BETN29, BETN043 or even better 
BETB011_PM, BETM204_PM, ... 
But unfortunately this does not work.





On Monday, April 7, 2014 6:59 AM, arun <smartpink...@yahoo.com> wrote:
Hi,

May be this helps:
stations <- LETTERS[1:4]
set.seed(42)
PM2.5 <- data.frame(DateTime=seq(as.POSIXct("2010-01-10 
01:00:00"),length.out=10,by= "1 day"), station= 
sample(LETTERS[1:4],10,replace=TRUE))
for(i in 1:length(stations))
assign(paste(stations[i],"PM",sep="_"),subset(PM2.5,station==stations[i])) 

A_PM 

#             DateTime station
#8 2010-01-17 01:00:00 A

D_PM
#             DateTime station
#1 2010-01-10 01:00:00 D 

#2 2010-01-11 01:00:00       D
#4 2010-01-13 01:00:00       D 


A.K.

Hey, I got a question that bugs me for a longer time now.  I want to create 
several data.frames via a for loop that is applied to the elements of a vector.
And I want to use the names of the elements in the name of the created 
data.frames. Is that possible?
Im confused with the coding there ... Should look something like this:   for (i 
in 1:length(stations)) {stations[i]_PM <- 
data.frame(PM2.5$DateTime,PM2.5$stations[i])} The result should be several 
dataframes (length of stations) with the name StationID_PM.
Should I use the paste function?? Thank you very much. Hopefuly, I explained 
myself well enough. Dolby

______________________________________________
R-help@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.

Reply via email to