I have a large data frame that consists of data that looks something like this:
date w x y z region
1 2012 01 21 43 12 3 NO
is this what you want ?
df_list <- split(data, as.factor(data$date))
Loop through each unique date and build the subset.
uniq <- unique(unlist(data$Date))
for (i in 1:length(uniq)){
data_1 <- subset(data, date == uniq[i])
#your desired function
}
After sub-setting your dataset by date, imagine that the function you would like to apply to each subset is to find the mean of the column x
. You could do it this way: (df is your dataframe)
library(plyr)
ddply(df, .(date), summarize, mean = mean(x))
You can split your data.frame
into a list
of data.frames
like this:
list.of.dfs<-by(data,data$date)
This is a perfect situation for the plyr
package:
require(plyr)
ddply(my_df, .(date), my_function, extra_arg_1, extra_arg_2)
where my_function
is the function you want to perform on the split data frames, and extra_arg
s are any extra arguments that need to go to that function.
ddply
(d
ata frame -> d
ata frame) is the form you want if you want your results in a data frame; dlply
returns a list.