4

我有以下形式的数据框:

Temp    Depth      Light   x   time date                   time.at.depth
104     18.59      -2.7    27 21:38 2012-06-20             4
109     18.59      -2.7    27 22:02 2012-06-20             5
110     18.75      -4.0    27 22:07 2012-06-20             5
113     18.91      -2.7    27 22:21 2012-06-20             4
114     18.91      -4.0    27 22:26 2012-06-20             5
115     18.91      -2.7    27 22:31 2012-06-20             5
117     18.91      -2.7    27 22:40 2012-06-20             4
118     18.75      -4.0    27 22:45 2012-06-20             5
119     18.75      -2.7    27 22:50 2012-06-20             5
121     18.59      -4.0    27 22:59 2012-06-20             4
122     18.75      -2.7    27 23:04 2012-06-20             5
123     18.75      -4.0    27 23:09 2012-06-20             5
126     18.59      -2.7    27 23:23 2012-06-20             5
127     18.59      -2.7    27 23:28 2012-06-20             5
128     18.59      -4.0    27 23:33 2012-06-20             5
133     18.75      -4.0    27 23:57 2012-06-20             5
136     18.59      -4.0    27 00:11 2012-06-20             5
138     18.59      -2.7    27 00:21 2012-06-20             5
140     18.91      -2.7    27 00:30 2012-06-20             5

我想将数据子集到 30 分钟的 bin 中。是否有捷径可寻?我查看了该split()函数,但似乎需要采用数字格式才能使其正常工作,我有时间进行POSIXct格式化。任何想法将不胜感激。

4

1 回答 1

7

这是适合您的单行代码(dat作为您的数据框):

split(dat, cut(strptime(paste(dat$date, dat$time), format="%F %R"),"30 mins"))

确实cut.POSIXt接受作为中断值

间隔规范,“sec”、“min”、“hour”、“day”、“DSTday”、“week”、“month”、“Quarter”或“year”之一,可选地以整数和空格开头,或后跟“s”。

另外,我使用了: see查看所有可能的格式%F %R的快捷方式。%Y-%m-%d %H:%M?strptime

于 2013-03-25T07:33:48.523 回答