我需要根据日期列(例如 - " 2015年8月"以月 - 年格式)从单个大df
中创建一组子集数据框。它应该类似于子集函数,除了要形成的子集dfs的计数应该根据日期列上的可用值动态改变
所有子集数据框都需要具有相似的结构,这样每个子集df
的日期列值将是一个且相同。
假设,如果我的大df
目前有10个月的数据,我现在需要10个子集数据帧,如果我下个月运行相同的命令(11个月的基础数据),则需要11个dfs。
我尝试过类似下面的内容。但是每次迭代后,子集subdf_i
都会被覆盖。因此,我只得到一个子集df atlast,其中包含月份列的最后一个值。
我认为相应地为月份列的所有45个唯一值创建了45个子集dfs,如subdf_1
,subdf_2
,...和subdf_45
。
uniqmnth <- unique(df$mnth)
for (i in 1:length(uniqmnth)){
subdf_i <- subset(df, mnth == uniqmnth[i])
i==i+1
}
我希望子集函数中应该有一些选项,或者任何循环都可以。我是R的初学者,不知道如何达到这个目标。
答案 0 :(得分:0)
我认为完美的解决方案可能是对迭代变量i使用assign(),以附加在45个子集的每个子集的名称中。感谢我朋友的说明。这是避免在每次循环运行时覆盖子集数据帧的解决方案。
uniqmnth <- unique(df$mnth)
for (i in 1:length(uniqmnth)){
assign(paste("subdf_",i,sep=""), subset(df, mnth == uniqmnth[i])) i==i+1
}