r - 如何使用 R 将我的每日日期列分组为每月日期?
问题描述
我有一个名为 Police_notifications 的数据框,这就是它的样子。
datum
1 06-03-2019 11:34:57
2 06-03-2019 11:15:12
3 06-03-2019 11:23:22
4 06-03-2019 11:23:22
5 06-03-2019 11:15:12
6 06-03-2019 11:07:07
7 06-04-2019 11:05:20
8 06-04-2019 11:10:30
日期列从 2015 年 12 月 11 日持续到 2019 年 6 月 3 日。列日期存在于每日日期之外。
日期列中的每一行代表 1 个值。所以我基本上想要的是一个额外的列,加上 1 个月的总值,所以我想要这样:
value date
100 01-03-2019
200 01-04-2019
150 01-05-2019
我正在寻找一个简单的解决方案来将我的每日日期转换为月份,并在其旁边添加总价值。
额外的信息:
datum locatie
1 06-03-2019 11:34:57 De Bilt
2 06-03-2019 11:23:22 Breda
3 06-03-2019 11:23:22 Breda
4 06-03-2019 11:15:12 Nijmegen
5 06-03-2019 11:07:07 Deventer
6 06-03-2019 11:05:27 Tilburg
7 06-03-2019 11:04:37 A15 hectometerpaal 144 (thv Neder-Betuwe)
8 06-03-2019 10:59:33 Oud-Beijerland
9 06-03-2019 10:52:44 Den Haag
10 06-03-2019 10:26:46 Den Haag
解决方案
您可以将时间戳转换为包含该月第一天的字符串,然后应用 group_by() 并计数以查找给定月份中的通知数量(如果要将数字添加为新列,请使用group_by 和变异版本):
df <- data.frame(ID = 1:8,
timestamp = c("06-03-2019 11:34:57", "06-03-2019 11:15:12", "06-03-2019 11:23:22",
"06-03-2019 11:23:22", "06-03-2019 11:15:12", "06-03-2019 11:07:07",
"06-04-2019 11:05:20", "06-04-2019 11:10:30"),
stringsAsFactors = F)
library(dplyr)
df %>%
mutate(month = format(as.POSIXct(timestamp, format = "%d-%m-%Y %H:%M:%S"), "01-%m-%Y")) %>%
group_by(month) %>%
count()
df %>%
mutate(month = format(as.POSIXct(timestamp, format = "%d-%m-%Y %H:%M:%S"), "01-%m-%Y")) %>%
group_by(month) %>%
mutate(n = n())
推荐阅读
- sql - 以逗号/列表分隔的字符串形式获取列名
- java - 当操作可能产生额外的任务以在同一个线程池上并行运行时避免并行处理中的死锁
- javascript - 打字稿:使用对象并使用 for...in
- java - 如何使用多个 if 条件重构我的 java 代码
- python - 如何将列表列表中的字符串转换为原地浮动?
- swift - 不使用 draw(_ updateRect: NSRect) 函数直接在 NSView 中绘图
- c# - 如何在 WPF 应用程序中渲染 HeroCard
- javascript - Leetcode 104 二叉树的最大深度
- arrays - MongoDB 根据之前的元素删除元素(迭代)
- swift - 如何重写代码以摆脱 Swift 中的重复代码?