【发布时间】:2018-05-12 23:15:47
【问题描述】:
我在 SO 上搜索并没有找到这个问题,如果我忽略了一个帖子,我深表歉意。 可重现的代码,因此您至少可以看到我正在处理的内容,但错误不会重现(在我的数据中间歇性发生):
require(dplyr)
df <-data.frame(id=as.numeric(c("1","1","1","2","2","2","3")),
start= c("1/31/17 10:00","1/31/17 10:02","1/31/17 10:45",
"2/10/17 12:00", "2/10/17 12:20","2/11/17 09:40","2/11/17 10:00"),
selfreport = c(12,20,10,0,10,37.5,NA))
df$time1 <- as.POSIXct(df$start,format = "%m/%d/%y %H:%M")
df$DIFF <- unlist(tapply(df$time1,df$id, function(x) c(NA,diff(x))))
which[(df$selfreport<df$DIFF) na.action= na.pass)]
问题 1:上面的输出 DIFF 列以分钟为单位(这是我想要的),但在我的数据中,只有某些组的值更改为小时。为什么会这样?
问题 2:我需要查看哪些行的 selfreport 值小于 DIFF 值,但不考虑 NA 值。如果没有错误消息,我无法弄清楚将na.action 放在哪里。
非常感谢您的帮助
【问题讨论】:
-
亲爱的香蕉;最好引用您在搜索过程中发现的内容,而不是请求宽恕。最好不要以表达有条件欣赏的尾声结束。网站开发人员将其视为“噪音”。在这方面,我们都严格遵守他们无所不知的指导。
-
关于问题的实质而不是形式:午夜日期时间的打印表示通常“看起来”只是日期。我无法判断这是否适用于您的问题,因为您的示例确实“举例说明”了这个问题。
-
@42-,如实指出。我还能提供什么有助于交流我的问题吗?我知道我的例子不能说明问题......