子集data.frames,合并子集和结果的rbind

时间:2013-11-17 19:06:07

标签: r loops merge dataframe subset

我正试图在values中找到df2valuedf1的百分比。这些dfs采用长格式,包含以下列/变量State(df1),ID(df2),MMvariable和{ {1}}。我匹配valueMM并在data.frames之间包含所有variable,以便我可以稍后对其进行子集化以选择百分比内的那些。

几乎可以找到我的问题的解决方案here,使用merge然后子集来查找values。但是,额外的细微差别不允许我按原样使用此解决方案。 values是〜900行,df1是〜1,600,000行,如果我尝试df2全部,r /我的机器无法处理它。但是,首先按mergedata.frame对每个MM进行子集化,然后合并,然后进行子集化,最后对所有中间人子集化的data.frames进行rbinding,这样可以产生我想要的结果。

有没有办法将variable然后data.frames分组,将结果存储到子集merge列表中,然后合并然后再绑定它们?

我知道dlply可以列出子集化的data.frames,但我不知道是否应该使用然后创建列表返回data.frames进行合并。另外,我不知道如何按顺序保留子集和合并。最多有12个data.frames组,总共有4个MM组,每variable个最多36个子集。

for循环或具有for循环的函数似乎可以工作,但我不知道r中的正确工具是如此。

以下示例针对一个(最多36个)dfMM分组执行子集和合并。

variable

1 个答案:

答案 0 :(得分:1)

从你的问题的这一部分:

  

有没有办法对data.frames进行子集化然后合并它们,存储结果   直到通过子集化data.frames列表合并然后rbind   它们?

我假设您要保留中间结果或中间计算/子集。如果确实如此,您可以将中间结果存储在一个文件中(例如.txt或.csv文件),然后在必要时读回文件。

您可以编写一个data.frame,将my_df直接写入如下文件:

write.table(my_df,"filename.txt", sep="\t")

此处,data.frame的列由选项卡分隔,但请查看此I / O命令上的documentation以获取更多详细信息。

每当您想要将所有信息加载到data.frame中时,只需使用read.table命令:

newDf <- read.table("filename.txt")

希望这可以帮到你。