可能我问的是一些非常简单的东西,但我是R的新手,我在论坛上找不到类似的东西。
我有一个如下所示的数据框:
bigDData.dt bigDData.a_temp bigDData.diff bigDData.V33
3148 2009-03-31 09:50:00 8.45 6.071806 yes
3149 2009-03-31 09:55:00 9.31 6.802639 yes
3150 2009-03-31 10:00:00 10.55 7.898750 yes
3151 2009-03-31 10:05:00 11.16 8.357361 yes
3152 2009-03-31 10:10:00 11.37 8.413889 yes
3153 2009-03-31 10:15:00 11.51 8.398750 yes
3154 2009-03-31 10:20:00 11.77 8.499306 yes
3155 2009-03-31 10:25:00 12.42 8.979583 yes
3156 2009-03-31 10:30:00 12.76 9.144722 yes
3412 2009-04-01 07:50:00 7.33 6.233472 yes
3413 2009-04-01 07:55:00 7.65 6.455972 yes
3414 2009-04-01 08:00:00 7.97 6.676250 yes
3415 2009-04-01 08:05:00 8.12 6.724583 yes
3416 2009-04-01 08:10:00 8.40 6.899028 yes
我很想知道连续数据的持续时间。例如,我想知道我在2009-04-01的数据持续时间是20分钟。然后我想根据连续数据的长度对数据进行分类。我尝试了一个for
循环,其中if
条件,但我不能很好地制定它,所以我得不到我想要的东西。也许有一个R包/功能能够做到这一点?或者也许你是否有人知道如何以正确的方式编写循环?
非常感谢!
答案 0 :(得分:0)
借助padr
和dplyr
个包,df
是您的数据框:
library(dplyr); library(padr)
df %>% thicken("day", col = "day") %>%
group_by(day) %>%
summarise(duration = max(bigDData.dt) - min(bigDData.dt))
这假设您的专栏bigDData.dt
属于POSIXct
类或POSIXlt
。