我创建了一个包含105个矩阵的列表,如下所示:
m<-vector("list",105)
for (i in 2:105) {
m[[i-1]]<-Datos[(x[i-1]+1):x[i],1:14] }
m[[105]]<-Datos[(x[105]+1):533195,1:14]
例如,我的矩阵编号104的一部分返回(在列中):
m[[104]]
ID:
8866
8866
8866
8866
8866
8866
8866
8866
Date:
1990-4-15
1990-4-16
1990-4-17
1990-4-18
1990-4-15
1990-4-16
1990-4-17
1990-4-18
Series:
APV
APV
APV
APV
INV
INV
INV
INV
这些是矩阵的一些列。我想要的是使用系列列分割这个矩阵。我认为这将是一个列表,取决于不同系列的数量。在这种情况下有2:APV and INV
(请注意,我不知道每个矩阵的系列名称,因此必须有一个函数来提取唯一的不同系列)
总之,我希望如此:
m[[104]][[1]] returns:
ID:
8866
8866
8866
8866
Date:
1990-4-15
1990-4-16
1990-4-17
1990-4-18
Series:
APV
APV
APV
APV
And m[[104]][[2]] returns:
ID:
8866
8866
8866
8866
Date:
1990-4-15
1990-4-16
1990-4-17
1990-4-18
Series:
INV
INV
INV
INV
或许你想出一种更有效的方法来做到这一点。
PD:不知道如何将列放在同一级别
答案 0 :(得分:0)
试试这个:
library(plyr)
lapply(m, dlply, "Series")
或:
lapply(m , function(x)split(x, x$Series))