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
fromanytime
),并获取符号
的总和
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))