如何根据全局条件对行进行切片?
How do I slice rows based in a global criteria?
我正在努力根据全局标准对我的行进行切片。我有一个这样的 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
等等...
基本上,第一列的每一行都包含一个特定的日期 (y/m/d),并且该日期在减少。
我正在使用 slice() 函数根据逐月方法打破 df(并创建按月分隔的新 df)。所以,我所做的是确定月份在哪一行开始,在哪一行结束,然后我做这样的事情:
dfnovember <- df %>%
slice(1:46)
有了它,我得到了我需要的东西,但是很难(非常手动)。我想知道是否有不同的功能可以应用标准(逐月)并通过一次推杆获得所有标准。
像(伪函数):
dfgenericmonth <- df %>%
slice(month[day 31 to 01])
有人可以帮我吗?
您可以从 col1
中提取月份并在 split
中使用它来将数据拆分为数据框列表,每个月一个。
result <- split(df, format(as.Date(df$col1), '%Y-%m'))
一个选项是从 zoo
转换为 yearmon
class
library(zoo)
library(dplyr)
out <- df %>%
group_split(grp = as.yearmon(col1), .keep = FALSE)
我正在努力根据全局标准对我的行进行切片。我有一个这样的 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
等等... 基本上,第一列的每一行都包含一个特定的日期 (y/m/d),并且该日期在减少。 我正在使用 slice() 函数根据逐月方法打破 df(并创建按月分隔的新 df)。所以,我所做的是确定月份在哪一行开始,在哪一行结束,然后我做这样的事情:
dfnovember <- df %>%
slice(1:46)
有了它,我得到了我需要的东西,但是很难(非常手动)。我想知道是否有不同的功能可以应用标准(逐月)并通过一次推杆获得所有标准。 像(伪函数):
dfgenericmonth <- df %>%
slice(month[day 31 to 01])
有人可以帮我吗?
您可以从 col1
中提取月份并在 split
中使用它来将数据拆分为数据框列表,每个月一个。
result <- split(df, format(as.Date(df$col1), '%Y-%m'))
一个选项是从 zoo
yearmon
class
library(zoo)
library(dplyr)
out <- df %>%
group_split(grp = as.yearmon(col1), .keep = FALSE)