R中的装箱时间数据
Binning time data in R
我有鸟类离开和到达的时间数据(例如到达 17:23:54)。我想将数据分箱到 2 小时时间箱(例如 0:00:00-1:59:59...等),所以总共 12 个箱。数据最终将进入一个条形图,x 轴上有时间 bin,y 轴上有计数。 package package 'binr' 会是我最好的选择吗?
谢谢
只需使用 ?cut
,因为它有 ?cut.POSIXt
date/times 的方法。例如:
x <- as.POSIXct("2016-01-01 00:00:00", tz="UTC") + as.difftime(30*(0:47),units="mins")
cut(x, breaks="2 hours", labels=FALSE)
# or to show more clearly the results:
data.frame(x, cuts = cut(x, breaks="2 hours", labels=FALSE))
# x cuts
#1 2016-01-01 00:00:00 1
#2 2016-01-01 00:30:00 1
#3 2016-01-01 01:00:00 1
#4 2016-01-01 01:30:00 1
#5 2016-01-01 02:00:00 2
#6 2016-01-01 02:30:00 2
#7 2016-01-01 03:00:00 2
#8 2016-01-01 03:30:00 2
#9 2016-01-01 04:00:00 3
#10 2016-01-01 04:30:00 3
# ...
如果您的数据只是字符串,那么您需要先进行转换。如果您不指定特定日期,时间最终会分配到当天。
as.POSIXct("17:23:54", format="%H:%M:%S", tz="UTC")
#[1] "2016-07-13 17:23:54 UTC"
我有鸟类离开和到达的时间数据(例如到达 17:23:54)。我想将数据分箱到 2 小时时间箱(例如 0:00:00-1:59:59...等),所以总共 12 个箱。数据最终将进入一个条形图,x 轴上有时间 bin,y 轴上有计数。 package package 'binr' 会是我最好的选择吗?
谢谢
只需使用 ?cut
,因为它有 ?cut.POSIXt
date/times 的方法。例如:
x <- as.POSIXct("2016-01-01 00:00:00", tz="UTC") + as.difftime(30*(0:47),units="mins")
cut(x, breaks="2 hours", labels=FALSE)
# or to show more clearly the results:
data.frame(x, cuts = cut(x, breaks="2 hours", labels=FALSE))
# x cuts
#1 2016-01-01 00:00:00 1
#2 2016-01-01 00:30:00 1
#3 2016-01-01 01:00:00 1
#4 2016-01-01 01:30:00 1
#5 2016-01-01 02:00:00 2
#6 2016-01-01 02:30:00 2
#7 2016-01-01 03:00:00 2
#8 2016-01-01 03:30:00 2
#9 2016-01-01 04:00:00 3
#10 2016-01-01 04:30:00 3
# ...
如果您的数据只是字符串,那么您需要先进行转换。如果您不指定特定日期,时间最终会分配到当天。
as.POSIXct("17:23:54", format="%H:%M:%S", tz="UTC")
#[1] "2016-07-13 17:23:54 UTC"