对于类似的数据df.A,不知根据条件刷选出子数据可有好的方法。
如下是用for循环做的,但如果数据量巨大的话,很费时间,不知有什么好的矩阵方式可以做。
<br />
> (df.A <- data.frame(A=rep(c('a','b','c'),3),B=rep('q',9),Value=sample(9),C=tail(letters,9)))<br />
A B Value C<br />
1 a q 7 r<br />
2 b q 3 s<br />
3 c q 8 t<br />
4 a q 5 u<br />
5 b q 6 v<br />
6 c q 4 w<br />
7 a q 2 x<br />
8 b q 9 y<br />
9 c q 1 z<br />
> df.B <- aggregate(list(Count=df.A[,'Value']),df.A[,c('A','B')],length)<br />
## df.B 做筛选用,根据factor A,B得出如下子数据<br />
> df.C<-list()<br />
> for(i in 1:nrow(df.B)){df.C[[i]]<-(df.A[df.A[,1]==df.B[i,1]&df.A[,2]==df.B[i,2],])}<br />
> df.C<br />
[[1]]<br />
A B Value C<br />
1 a q 8 r<br />
4 a q 2 u<br />
7 a q 6 x</p>
<p>[[2]]<br />
A B Value C<br />
2 b q 9 s<br />
5 b q 7 v<br />
8 b q 3 y</p>
<p>[[3]]<br />
A B Value C<br />
3 c q 4 t<br />
6 c q 5 w<br />
9 c q 1 z<br />
</p>