【发布时间】:2017-06-22 17:31:02
【问题描述】:
我有以下data.frame。查看前几行的示例和 属性。
SubPop Origin grid_code
AL 2008 4.730380
AL 2008 5.552315
AL 2008 5.968850
AL 2008 5.128384
AL 2009 6.927450
AL 2009 7.135734
ALCentral 2008 7.381087
ALCentral 2008 6.232927
ALCentral 2009 6.431800
ALCentral 2009 6.690246
ALCentral 2009 6.794144
我想知道如何将此 data.frame 拆分为属性 SubPop 和 Origin 组合的唯一组。例如,整个 data.frame 有一组独特的 48 种 SubPop 和 Origin 组合。
也就是说,我希望有 48 个列表作为我的最终输出,并且每个列表将只有该组的属性。 示例:第一组“AL 和 2008”将包含我的数据框的所有条目,这些条目具有 SubPop=Al 和 Origin=2008。等等……
> unique<-unique(df[,c("SubPop", "Origin")])
> unique<-unique[order(unique$SubPop, unique$OriginT),]
> df_split<-split(df, unique)
使用此代码,我可以找到属性的唯一组合,但拆分过程已将属性随机分配给组。
如果让您感到困惑,请见谅...
【问题讨论】:
-
最简单的方法可能是
myList <- split(df, interaction(df$SubPop, df$Origin)),它将返回一个由这两个变量的交互作用拆分的data.frames的命名列表。 -
我不确定将同构数据结构拆分为小块数据并单独处理是否是个好主意。假设您是一名数据库管理员,您会因为两个属性发生变化而创建 48 个单独命名的表吗?
标签: r list dataframe split unique