I want to split an existing dataframe by the levels of one of the factor variables so that the names of the split dataframes would correspond to the levels of the factor. >
You can do it with the plyr package
plyr
require(plyr) dlply(df, .(Z))