Dividir um grande dataframe em uma lista de quadros de dados com base no valor comum na coluna

Eu tenho um quadro de dados com 10 colunas, coletando ações de "usuários", onde uma das colunas contém um ID (não exclusivo, identificando usuário) (coluna 10). o comprimento do quadro de dados é de cerca de 750000 linhas. Eu estou tentando extrair quadros de dados individuais (para obter uma lista ou vetor de quadros de dados) divididos pela coluna que contém o identificador de "usuário", para isolar as ações de um único ator.

ID | Data1 | Data2 | ... | UserID
1  | aaa   | bbb   | ... | u_001
2  | aab   | bb2   | ... | u_001
3  | aac   | bb3   | ... | u_001
4  | aad   | bb4   | ... | u_002

resultando em

list(
ID | Data1 | Data2 | ... | UserID
1  | aaa   | bbb   | ... | u_001
2  | aab   | bb2   | ... | u_001
3  | aac   | bb3   | ... | u_001
,
4  | aad   | bb4   | ... | u_002
...)

O seguinte funciona muito bem para mim em uma pequena amostra (1000 linhas):

paths = by(smallsampleMat, smallsampleMat[,"userID"], function(x) x)

e, em seguida, acessar o elemento que eu quero por caminhos [1], por exemplo.

Ao aplicar no quadro de dados grande original ou mesmo uma representação de matriz, isso bloqueia minha máquina (4GB de RAM, MacOSX 10.6, R 2.15) e nunca termina (eu sei que existe uma versão R mais recente, mas acredito que este não é o principal problema ).

Parece que a divisão tem mais desempenho e após um longo período de tempo, mas eu não sei (conhecimento inferior de R) como dividir a lista resultante de vetores em um vetor de matrizes.

path = split(smallsampleMat, smallsampleMat[,10]) 

Eu considerei também usandobig.matrix etc, mas sem muito sucesso que iria acelerar o processo.

questionAnswers(2)

yourAnswerToTheQuestion