在R中过滤多个时间序列值
我有一个时间序列的问题,我不知道如何解决 我有一个包含4个不同变量的TIBLE。在我的真实数据集中,有超过10000个文档在R中过滤多个时间序列值,r,filter,time-series,tidyverse,R,Filter,Time Series,Tidyverse,我有一个时间序列的问题,我不知道如何解决 我有一个包含4个不同变量的TIBLE。在我的真实数据集中,有超过10000个文档 document date author label 1 2018-04-05 Mr.X 1 2 2018-02-05 Mr.Y 0 3 2018-04-17
document date author label
1 2018-04-05 Mr.X 1
2 2018-02-05 Mr.Y 0
3 2018-04-17 Mr.Z 1
因此,现在我的问题是,在第一步中,我想计算我的文章,这些文章发生在我的时间序列中的每个月的特定月份和特定年份。我知道我可以过滤一年中的特定月份,如下所示:
tibble%>%
filter(date > "2018-02-01" && date < "2018-02-28")
tibble%>%
过滤器(日期>“2018-02-01”和日期<“2018-02-28”)
由此产生的结果将是一个带有1个观察值的TIBLE,但我的问题是,我的数据中有360个不同的时间段。我可以为此编写一个函数来解决此问题,还是需要自己进行计算
对我来说,最好的解决方案是一个包含360个不同列的表格,其中每个列都表示本月统计的文章数量。这可能吗
提前非常感谢。如果您想将每个结果单独列在一个列表中,您可以这样做
suppressMessages(库(dplyr))
df%>%变异(日期=as.date(日期))%>%
分组(substr(日期,1,7),.keep=F)
>[2]>
[[1]]
#一个tibble:1 x 4
文档日期作者标签
1 2 2018-02-05 Y先生0
[[2]]
#一个tibble:2x4
文档日期作者标签
1 2018-04-05 X先生1
2 3 2018-04-17 Z先生1
您还可以进一步使用
list2env()
将此列表中的每个项目保存为单独的项目。如果希望将每个结果保存到单独的列表中,可以执行以下操作
suppressMessages(库(dplyr))
df%>%变异(日期=as.date(日期))%>%
分组(substr(日期,1,7),.keep=F)
>[2]>
[[1]]
#一个tibble:1 x 4
文档日期作者标签
1 2 2018-02-05 Y先生0
[[2]]
#一个tibble:2x4
文档日期作者标签
1 2018-04-05 X先生1
2 3 2018-04-17 Z先生1
您可以进一步使用
list2env()
将此列表中的每个项目保存为单独的项目。要计算每个月-年组合的行数,在tidyverse
中,您可以执行以下操作:
library(dplyr)
library(tidyr)
df %>%
mutate(date = as.Date(date),
year_mon = format(date, '%Y-%m')) %>%
select(year_mon) %>%
pivot_wider(names_from = year_mon, values_from = year_mon,
values_fn = length, values_fill = 0)
# `2018-04` `2018-02`
# <int> <int>
#1 2 1
库(dplyr)
图书馆(tidyr)
df%>%
变异(日期=as.date(日期),
年份月份=格式(日期,%Y-%m'))%>%
选择(年/月)%>%
透视图(名称从=年份从=年份从,值从=年份从,
值\ fn=长度,值\填充=0)
# `2018-04` `2018-02`
#
#1 2 1
在R基中:
df$date <- as.Date(df$date)
table(format(df$date, '%Y-%m'))
df$date要计算每个月-年组合的行数,在tidyverse
中,您可以执行以下操作:
library(dplyr)
library(tidyr)
df %>%
mutate(date = as.Date(date),
year_mon = format(date, '%Y-%m')) %>%
select(year_mon) %>%
pivot_wider(names_from = year_mon, values_from = year_mon,
values_fn = length, values_fill = 0)
# `2018-04` `2018-02`
# <int> <int>
#1 2 1
库(dplyr)
图书馆(tidyr)
df%>%
变异(日期=as.date(日期),
年份月份=格式(日期,%Y-%m'))%>%
选择(年/月)%>%
透视图(名称从=年份从=年份从,值从=年份从,
值\ fn=长度,值\填充=0)
# `2018-04` `2018-02`
#
#1 2 1
在R基中:
df$date <- as.Date(df$date)
table(format(df$date, '%Y-%m'))
df$date抱歉,我需要将每个项目作为一个单独的列表,最好是整数,即特定月份的文档数量。您能否就给定的样本数据提供所需的结果?我无法理解,尽管我已经给出了一个解决方案,将其分为不同的时间段。这不是按照你的要求吗?对不起,我需要每一个项目作为一个单独的列表,最好是整数,在特定的月份有多少文件被计数。你能提供关于给定样本数据的预期结果吗?我无法理解,尽管我已经给出了一个解决方案,将其分为不同的时间段。这不符合您的要求吗?但如果我的文档列是格式字符,而我的日期列是格式日期,这对我也是可能的吗?是的,请参见编辑后的答案。但是如果我的文档列是格式字符,而我的日期列是格式日期,这对我也是可能的吗?是的,请参见编辑后的答案。