2015-04-01 60 views
1

我试图子组日期字段广告的大数据帧面对奇怪的现象:的R - 子集按日期

1)寻找有趣的时间间隔:

> ld[ld$bps>30000000,] 
      Date.first.seen Duration Proto  Src.IP.Addr Src.Pt  Dst.IP.Addr Dst.Pt Tos Packets Bytes  bps 
1400199 2015-03-31 13:52:24 0.008 TCP  3.3.3.3 3128  4.4.4.4 65115 0  39 32507 32500000 
1711899 2015-03-31 14:58:10 0.004 TCP  3.3.3.3 3128  4.4.4.7 49357 0  29 23830 47700000 

2),并尝试寻找什么发生在那第二个:

> ld[ld$Date.first.seen=="2015-03-31 13:52:24",] 
      Date.first.seen Duration Proto  Src.IP.Addr Src.Pt  Dst.IP.Addr Dst.Pt Tos Packets Bytes bps 
1401732 2015-03-31 13:52:24 17.436 TCP  3.3.3.3 3128 6.6.6.6 51527 0  3  1608 737 

不真正了解的行为 - 我应该得到更多的结果方式。 例如

> ld[1399074,] 
      Date.first.seen Duration Proto  Src.IP.Addr Src.Pt  Dst.IP.Addr Dst.Pt Tos Packets Bytes  bps 
1399074 2015-03-31 13:52:24 0.152 TCP  10.10.10.10 3128 11.11.11.11 62375 0  8  3910 205789 

日期我使用POSIXlt

> str(ld) 
'data.frame': 2657583 obs. of 11 variables: 
$ Date.first.seen: POSIXlt, format: "2015-03-31 06:00:00" "2015-03-31 06:00:00" "2015-03-31 06:00:00" "2015-03-31 06:00:01" ... 
... 

希望得到任何帮助。谢谢!

+0

可重现的例子? – RockScience 2015-04-01 10:58:39

回答

0

当打印整个data.frame,时区,夏令时等时,POSIXlt可能会带有额外的信息。请查看https://stat.ethz.ch/R-manual/R-devel/library/base/html/DateTimeClasses.html

仅打印POSIXlt变量(ld$Date.first.seen)通常会提供至少一些此类附加信息。

如果你不是为了让你的变量在POSIXlt需要一些特殊的原因,如果你不需要额外的功能的格式使,一个简单的:

你的子集语句之前
ld$Date.first.seen = as.character(ld$Date.first.seen) 

添加可能会解决你的问题。