我是R的新手,我的任务是制作一个脚本,将模拟用户网络使用的协议绘制成直方图,a)确定他们使用的协议,b)将所有协议分成5个 - 第二个间隔,并为每个使用的不同协议生成图表。
目前我们有
data$bucket <- cut(as.numeric(format(data$DateTime, "%H%M")),
c(0,600, 2000, 2359),
labels=c("00:00-06:00", "06:00-20:00", "20:00-23:59")) #Split date into dates that are needed to be
将代码拆分为3个区域以用于其他功能。 代码应该以5秒的间隔更改为什么?
对不起,如果问题不是很清楚,谢谢
答案 0 :(得分:2)
直方图函数hist()
可以自行聚合和/或绘制所有函数,因此您实际上不需要cut()
。
让我们在一小时内创建1,000个随机时间戳:
set.seed(1)
foo <- as.POSIXct("2014-12-17 00:00:00")+runif(1000)*60*60
(请看?POSIXct
关于R如何处理POSIX时间对象。特别注意“+”假设您要添加秒,这就是为什么我乘以60 ^ 2。)
接下来,以5秒为间隔定义断点:
breaks <- seq(as.POSIXct("2014-12-17 00:00:00"),
as.POSIXct("2014-12-17 01:00:00"),by="5 sec")
(这一次,请看?seq.POSIXt
。)
现在我们可以绘制直方图。请注意我们如何将hist()
的输出分配给对象bar
:
bar <- hist(foo,breaks)
(如果你不想要情节,但只需要数量,请使用plot=FALSE
。)
?hist
告诉您hist()
(不可见)返回每个桶的计数。我们可以通过访问counts
的{{1}}广告位来查看此内容:
bar