我试图通过日期字段广告对大型数据框进行子集化,这会面临奇怪的行为:
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 :(得分:0)
POSIXlt可能会带有在打印整个data.frame
,时区,夏令时等时被抑制的其他信息。请查看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)
在子语句之前添加可能会解决您的问题。