【发布时间】:2014-11-20 12:24:25
【问题描述】:
@Akrun 这是我运行代码时的输出……当我输入View(df) 时,我得到了旧数据集。
> df %>%
+ group_by(ID) %>%
+ mutate(difftime=c(15, format(.POSIXct(diff(TIMESTAMP)), '%M:%S')))
Source: local data frame [192 x 9]
Groups: ID
TIMESTAMP ID STATUS ACTIVE PSET
1 2014-08-05 00:00:00 28808 DOWN 67.410 70
2 2014-08-05 00:15:00 28808 DOWN 67.410 70
3 2014-08-05 00:30:00 28808 DOWN 67.410 70
4 2014-08-05 00:45:00 28808 DOWN 67.410 70
5 2014-08-05 01:00:00 28808 DOWN 67.410 70
.. ... ... ... ... ...
Variables not shown: STAT (chr), PIN (chr), ONOFF (chr), difftime (chr)
我需要找到每个 ID 的时间戳差异,使每个 ID 的第一个时间戳为 NA。
我已经尝试过diff,但我无法找到每个 ID 的差异。
这可以通过order 简化一点,但是如何让R's diff function 知道 ID 可以不同
以下是供您参考的示例数据。
这是我现在按要求使用的代码。
foreach(i=1:length(xyzID)) %dopar%{
xyz$timediff<-c(15,diff(xyz$TIMESTAMP))
}
TIMESTAMP ID timediff
07/29/2014 10:15 AM 189252 NA
07/29/2014 10:45 AM 189252 0:30
07/29/2014 11:00 AM 189252 0:15
07/29/2014 11:15 AM 189252 0:15
07/29/2014 11:30 AM 302859 NA
07/29/2014 11:45 AM 302859 0:15
07/29/2014 04:00 PM 302859 04:15
07/29/2014 12:15 PM 189252 01:00
07/29/2014 12:30 PM 189252 0:15
07/29/2014 01:00 PM 189252 0:30
07/29/2014 01:15 PM 189252 0:15
07/29/2014 01:30 PM 178502 NA
07/29/2014 01:45 PM 178502 0:15
【问题讨论】:
-
添加了我的代码。 @akrun
-
您能否发布一个新示例,因为描述中不清楚。
-
将其分配给新的
object。 IE。df1 <- df %>%group_by(ID) %>% mutate(difftime=c(15, format(.POSIXct(diff(TIMESTAMP)), '%M:%S')))并检查str(df1)。as.data.frame(df1) -
太棒了..它有效!我是 R 的新手。任何建议的 pdf 文件??
标签: r