R 如何根据日历周和日历年聚合列中的值计数

R 如何根据日历周和日历年聚合列中的值计数,r,R,我有一个相当大的数据集(2017年至2020年),我想计算整个数据集每周出现的每一次“股票”。因此,我希望看到(仅此示例为7) 我一直在四处寻找,找不到您可以从日期和计数中提取周信息: 2017-10-19 to 2017-10-26 F5 Blue = 3 2017-10-27 to 2017-11-2 F5 Green = 1 F6 Green = 2 F6 Blue = 1 在base R中,您可以使用表格: library(dplyr) df %>% count(Week =

我有一个相当大的数据集(2017年至2020年),我想计算整个数据集每周出现的每一次“股票”。因此,我希望看到(仅此示例为7)


我一直在四处寻找,找不到

您可以从日期和计数中提取周信息:

2017-10-19 to 2017-10-26 F5 Blue = 3
2017-10-27 to 2017-11-2  F5 Green = 1 F6 Green = 2 F6 Blue = 1
在base R中,您可以使用
表格

library(dplyr)
df %>% count(Week = lubridate::week(Date), Stock)

#  Week   Stock n
#1   42  F5Blue 3
#2   44 F5Green 1
#3   44  F6Blue 1
#4   44 F6Green 2
数据

table(format(df$Date, '%V'), df$Stock)

df我们可以使用
groupby
summary

df <- structure(list(Date = structure(c(17458, 17458, 17458, 17469, 
17469, 17470, 17470), class = "Date"), Stock = c("F5Blue", "F5Blue", 
"F5Blue", "F5Green", "F6Blue", "F6Green", "F6Green")), row.names = c("1", 
"2", "3", "4", "5", "6", "7"), class = "data.frame")
-输出

library(dplyr)
df %>%
   group_by(Week = lubridate::week(Date), Stock) %>%
   summarise(n = n(), .groups = 'drop')
#一个tible:4 x 3
#星期股票
#      
#1 42 F53蓝色3
#2 44 F5绿色1
#3 44 F6蓝色1
#4 44 F6绿色2
数据
df我似乎一直在第一个解决方案中遇到这个错误。UseMethod(“group_by_”)中出错:没有适用于“function”类对象的“group_by_”方法@Gamecocks20第二种方法对您有效吗?对于第一种方法,请尝试编写
dplyr::count
。你能用我在帖子中分享的数据测试一下吗?它对这些数据有效吗?
library(dplyr)
df %>%
   group_by(Week = lubridate::week(Date), Stock) %>%
   summarise(n = n(), .groups = 'drop')
# A tibble: 4 x 3
#   Week Stock       n
#  <dbl> <chr>   <int>
#1    42 F5Blue      3
#2    44 F5Green     1
#3    44 F6Blue      1
#4    44 F6Green     2
df <- structure(list(Date = structure(c(17458, 17458, 17458, 17469, 
17469, 17470, 17470), class = "Date"), Stock = c("F5Blue", "F5Blue", 
"F5Blue", "F5Green", "F6Blue", "F6Green", "F6Green")), row.names = c("1", 
"2", "3", "4", "5", "6", "7"), class = "data.frame")