我正试图在values
中找到df2
中value
中df1
的百分比。这些dfs
采用长格式,包含以下列/变量State
(df1),ID
(df2),MM
,variable
和{ {1}}。我匹配value
和MM
并在data.frames之间包含所有variable
,以便我可以稍后对其进行子集化以选择百分比内的那些。
几乎可以找到我的问题的解决方案here,使用merge然后子集来查找values
。但是,额外的细微差别不允许我按原样使用此解决方案。 values
是〜900行,df1
是〜1,600,000行,如果我尝试df2
全部,r /我的机器无法处理它。但是,首先按merge
和data.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个)df
和MM
分组执行子集和合并。
variable
答案 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")
希望这可以帮到你。