R语言将数据框拆分为图形的相关格式

R语言将数据框拆分为图形的相关格式,r,graph,R,Graph,我有一个包含12000行以下内容的数据集(显然,IP地址已更改): 所以,我对此做了一些事情,比如“获取所有ip地址,它们有超过100行的真与假组合”,等等 我正在尝试将上面的内容转换成一种易于使用的格式,在这种格式中,我可以按计数对“好的”bool进行排序,并将其分组为1小时的间隔。比如: date TRUE FALSE 2016-10-31 00:00:00 342 1010 2016-10-31 01:00:00 544 890 我尝试了cut.PO

我有一个包含12000行以下内容的数据集(显然,IP地址已更改):

所以,我对此做了一些事情,比如“获取所有ip地址,它们有超过100行的真与假组合”,等等

我正在尝试将上面的内容转换成一种易于使用的格式,在这种格式中,我可以按计数对“好的”bool进行排序,并将其分组为1小时的间隔。比如:

date                TRUE  FALSE
2016-10-31 00:00:00 342  1010
2016-10-31 01:00:00 544   890
我尝试了
cut.POSIXt(data$date,breaks=“hour”)
,但这并没有保留bool状态,也给了我一个不可标记的对象

我尝试了
lappy(split(投票,cut(投票$date,“hour”)),function(x)summary(x[2]))
,这是我在网上找到的,正好适合我的用例,但是

1) 除了割裂之外,我不明白发生了什么 2) 它给了我一个以字符为单位的日期列表,后面是一团字符,我无法绘制

我应该在这里采取什么转变和步骤?我试着加总,但我总是失去正确/错误的区分


我们的目标是制作一个每小时间隔有两个彩色条的绘图,蓝色表示该小时间隔内注册的total true,红色表示该小时间隔内注册的total false。

以下是一种基于示例数据使用
dplyr
的方法,假设
df$Date
POSIXct
类型

library(dplyr)
library(tidyr)
df %>% 
  group_by(date = format(Date, "%Y-%m-%d"),
           hour = format(Date, "%H"),
           good = as.character(good)) %>%
  summarise(count = n()) %>%
  spread(key = good, value = count)
#        date  hour `FALSE` `TRUE`
#*      <chr> <chr>   <int>  <int>
#1 2016-10-31    00       3      7
库(dplyr)
图书馆(tidyr)
df%>%
分组依据(日期=格式(日期,“%Y-%m-%d”),
小时=格式(日期,“%H”),
好=作为.字符(好))%>%
汇总(计数=n())%>%
排列(键=良好,值=计数)
#日期时间'FALSE``真`
#*            
#1 2016-10-31    00       3      7

如果您打算打印,您可能不需要执行
spread()
的最后一步,例如可以使用之前的步骤将其插入
ggplot2

下面是一个包含
数据的解决方案。table

library(data.table)
dt <- data.table(df)

请给出一个工作示例,以便我们可以测试它。您可以使用dput()@timat,我很乐意,但我不能,因为我实际上使用的是敏感的生产数据,无法复制这些数据。不过我得到了答案。非常感谢您的关注。df%>%这个%>%符号是什么?@JapanRob他们叫它pipe operator,看这里@timat谢谢!
library(data.table)
dt <- data.table(df)
dt$date<- as.POSIXct(dt$date,format="%d/%m/%Y %H:%M",  tz = "GMT")
dt$break_hour <- cut(dt$date, breaks="hour")
dt <- dt[,list(good = sum(good), bad = sum(!good)), by=break_hour ]