我想要一个数据框子集,其中我得到基于多个列值的多个数据帧。这是我的例子R基于多个列值将数据帧分成多个数据帧
>df
v1 v2 v3 v4 v5
A Z 1 10 12
D Y 10 12 8
E X 2 12 15
A Z 1 10 12
E X 2 14 16
预期输出是这样的我在哪里分裂这个数据帧为基于v1
列中的多个数据帧和v2
>df1
v3 v4 v5
1 10 12
1 10 12
>df2
v3 v4 v5
10 12 8
>df3
v3 v4 v5
2 12 15
2 14 16
我已经写了这是工作守则现在,但不认为这是做到这一点的最佳方式。必须有更好的方法来做到这一点。假设tab
是具有初始数据的数据帧。这是我的代码:
v1Factors<-levels(factor(tab$v1))
v2Factors<-levels(factor(tab$v2))
for(i in 1:length(v1Factors)){
for(j in 1:length(v2Factors)){
subsetTab<-subset(tab, v1==v1Factors[i] & v2==v2Factors[j], select=c("v3", "v4", "v5"))
print(subsetTab)
}
}
有人可以建议一个更好的方法来做到上述?
你想重用这些数据框,还是只打印它们按这些列分组? – Thilo 2013-03-13 04:45:52
我想重复使用它们....想要在这些数据框上绘制图表。 – 2013-03-13 04:46:37