R tapply Разница во времени - Единицы несовместимы - PullRequest
0 голосов
/ 13 мая 2018

Я искал и не смог найти эту проблему на 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: Мне нужно увидеть, какие строки имеют значения самоотчета, которые меньше значений DIFF, но оставляют значения NA в покое. Я не могу понять, где поставить na.action без сообщения об ошибке.

Помощь очень ценится

1 Ответ

0 голосов
/ 13 мая 2018

Для второй части проблемы вы можете сказать df %>% filter(!is.na(DIFF)) %>% filter(selfreport < DIFF).

...