Probably, you need:
library(plyr)
out <- llply(unique(df[,1]), function(x) subset(df, df[,1]==x))
out
It creates list
where each element is data.frame
with specific location
.
Now you can access data.frames
as: out[[1]]
.
If you want to keep names:
names(out) <- unique(df[,1])
out$X # gives data.frame with location=='X'