I looked in the question database but I didn't find an answer, so sorry if I miss something.
The question is very simple: how can I create new data frames based on a column ID of another one?

If this in the original df:

```
structure(list(ID = structure(c(12L, 12L, 12L, 12L, 12L, 12L, 
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 13L, 13L, 13L, 
13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 
13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L, 13L), .Label = c("B0F", 
"B12T", "B1T", "B21T", "B22F", "B26T", "B2F", "B33F", "B3F", 
"B4F", "B7F", "P1", "P21", "P24", "P25", "P27", "P28", "P29"), class = "factor"), 
    EC = c(953L, 838L, 895L, 2170L, 2140L, 1499L, 2120L, 881L, 
    902L, 870L, 541L, 891L, 876L, 860L, 868L, 877L, 3630L, 3400L, 
    2470L, 2330L, 1810L, 2190L, 2810L, 2200L, 2440L, 1111L, 2460L, 
    2210L, 2340L, 1533L, 880L, 2475L, 2350L, 2440L, 1456L, 2320L, 
    2220L, 2990L, 2240L, 2210L, 2630L)), .Names = c("ID", "EC"
), row.names = 40:80, class = "data.frame")

```

How can I create two new df, based on the ID? So I can have two new df named B21T and P1 for example?
I know I can do it with a subset, but if I have many IDs it would take a lot of time. 

So I think that what I'm looking for is a way to automatize the subset function.