【发布时间】:2015-08-31 07:17:25
【问题描述】:
我需要根据日期列(例如 - 月-年格式的“2015 年 8 月”)从一个大的 df 创建一堆子数据框。它应该类似于子集函数,除了要形成的子集 dfs 的计数应该根据日期列上的可用值动态变化
所有子集数据框都需要具有相似的结构,以便每个子集df 的日期列值都相同。
假设,如果我的大 df 当前有过去 10 个月的数据,我现在需要 10 个子数据帧,如果我下个月运行相同的命令(有 11 个月的基础数据),我需要 11 个 dfs。
我尝试过类似下面的方法。但是在每次迭代之后,子集subdf_i 都会被覆盖。因此,我只得到一个子集 df atlast,其中包含月份列的最后一个值。
我认为这将被创建为 45 个子集 dfs,例如 subdf_1、subdf_2、... 和 subdf_45,对应于月份列的所有 45 个唯一值。
uniqmnth <- unique(df$mnth)
for (i in 1:length(uniqmnth)){
subdf_i <- subset(df, mnth == uniqmnth[i])
i==i+1
}
我希望子集函数中应该有一些选项,或者任何循环都可以。我是 R 的初学者,不知道如何做到这一点。
【问题讨论】:
-
你已经尝试过什么?
split()是否满足您的需求?否则,请查看 dplyr 包。 -
@Bala 请read 知道如何询问可重现的示例。
-
您使用 RStudio 的事实与此无关。如果您寻求帮助,您应该首先努力并阅读上面已经指出的关于如何提问的网站政策。
-
@agstudy 感谢有关可重现示例的建议。我会牢记,继续前进。
-
如果您使用
for循环,您可能需要assign在全局环境中创建新的对象名称。
标签: r