R 如何根据日历周和日历年聚合列中的值计数
我有一个相当大的数据集(2017年至2020年),我想计算整个数据集每周出现的每一次“股票”。因此,我希望看到(仅此示例为7)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-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")