R 如何基于全局条件切片行?

R 如何基于全局条件切片行?,r,dataframe,slice,rows,R,Dataframe,Slice,Rows,我正在努力根据全局标准分割行。我有这样一个df: col1 col2 col3 1. 2020-10-31 2. 2020-10-30 3. 2020-10-29 4. 2020-10-28 .... 43. 2020-9-30 44. 2020-9-29 45. 2020-9-28 46. 2020-9-27 dfnovember <- df %>%

我正在努力根据全局标准分割行。我有这样一个df:

         col1           col2            col3
 1. 2020-10-31 
 2. 2020-10-30 
 3. 2020-10-29 
 4. 2020-10-28
....
 43. 2020-9-30 
 44. 2020-9-29 
 45. 2020-9-28 
 46. 2020-9-27 
  dfnovember <- df %>%    
                  slice(1:46)
等等。。。 基本上,第一列的每一行都包含一个特定的日期(y/m/d),并且它正在减少。 我使用slice()函数根据逐月方法(并创建以月分隔的新dfs)打破df。所以,我要做的是确定这个月在哪一行开始,在哪一行结束,然后我做如下事情:

         col1           col2            col3
 1. 2020-10-31 
 2. 2020-10-30 
 3. 2020-10-29 
 4. 2020-10-28
....
 43. 2020-9-30 
 44. 2020-9-29 
 45. 2020-9-28 
 46. 2020-9-27 
  dfnovember <- df %>%    
                  slice(1:46)
df%
切片(1:46)
有了它,我得到了我需要的,但很难(非常手动)。我想知道是否有一个不同的功能,我可以应用的标准(每月),并获得所有它与一推杆。 类似于(伪函数):

dfgenericmonth%
切片(月[第31天至第01天])

有人能帮我吗?

您可以从
col1
中提取月份,并在
split
中使用它将数据拆分为数据帧列表,每个月一个

result <- split(df, format(as.Date(df$col1), '%Y-%m'))

result一个选项是从
zoo

library(zoo)
library(dplyr)
out <- df %>%
    group_split(grp = as.yearmon(col1), .keep = FALSE)
图书馆(动物园)
图书馆(dplyr)
超出%
组分割(grp=as.yearmon(col1),.keep=FALSE)

可以按
月份进行分组,然后使用
分组分割()。在
dput()
表单中使用适当的示例输入和可用于测试和验证可能解决方案的所需输出进行测试会更容易。@MrFlick我总是找不到正确的模板。谢谢你引起我的注意。我将在nxt时间提交更多内容。我还在熟悉站台,呵呵