R 使用不同格式按日期将列分组

R 使用不同格式按日期将列分组,r,date,group-by,R,Date,Group By,我有一个数据集,其中一列有日期和时间值。每个日期都有多个条目。每个日期的第一行具有格式为2018年5月29日\u 00:00:00.000000的日期值,而同一日期的其余行具有时间值,即20:00-21:00。问题是我想对每天另一列中的值求和 示例数据具有以下格式 Date A 29MAY2018_00:00:00.000000 20:00 - 21:00 0.009 21:00 - 22:00

我有一个数据集,其中一列有日期和时间值。每个日期都有多个条目。每个日期的第一行具有格式为
2018年5月29日\u 00:00:00.000000
的日期值,而同一日期的其余行具有时间值,即
20:00-21:00
。问题是我想对每天另一列中的值求和

示例数据具有以下格式

Date                       A
29MAY2018_00:00:00.000000   
20:00 - 21:00              0.009
21:00 - 22:00              0.003
22:00 - 23:00              0.0003
23:00 - 00:00              0
30MAY2018_00:00:00.000000   
00:00 - 01:00              -0.0016
01:00 - 02:00              -0.0012
02:00 - 03:00              -0.0002
03:00 - 04:00              -0.0023
04:00 - 05:00              0
05:00 - 06:00              -0.0005
20:00 - 21:00              -0.0042
21:00 - 22:00              -0.0035
22:00 - 23:00              -0.0026
23:00 - 00:00              -0.001
我已经创建了一个新专栏

data$C[data$A ==0 ] <- 0
data$C[data$A < 0 ] <- -1
data$C[data$A > 0 ] <- 1

一个选项是根据“日期”中出现的完整日期时间格式创建一个分组列,
摘要
第一个“日期”,将其转换为
日期
格式(使用
anydate
from
anytime
),并获取
符号
总和

library(tidyverse)
library(anytime)
data %>%
    group_by(grp = cumsum(str_detect(Date, "[A-Z]"))) %>% 
    summarise(Date = anydate(first(Date)),
               B = sum(sign(A), na.rm = TRUE))

你不需要三个作业。示例中未显示Just use
数据$C 2019年5月31日抱歉,但上述数据只是一个示例,我有多年的数据谢谢@akrun,它成功了。我在终端上得到了结果,但不知道如何在短时间内得到它DF@Abrar只需将其分配给数据帧
DF%group\u by(grp=cumsum(str\u detect(Date,[a-Z]”))%>%summary(Date=anydate(first(Date)),B=sum(sign(a),na.rm=TRUE))
library(tidyverse)
library(anytime)
data %>%
    group_by(grp = cumsum(str_detect(Date, "[A-Z]"))) %>% 
    summarise(Date = anydate(first(Date)),
               B = sum(sign(A), na.rm = TRUE))