Я триангулировал информацию из других ответов SO для приведенного ниже кода, но застрял с сообщением об ошибке. Поиск SO для подобных ошибок и решений, но не смог выяснить, поэтому помощь приветствуется.
Для каждой группы («id») я хочу получить разницу между временем начала для последовательных строк.
Воспроизводимые данные:
require(dplyr)
df <-data.frame(id=as.numeric(c("1","1","1","2","2","2")),
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"))
time <- strptime(df$start, format = "%m/%d/%y %H:%M")
df %>%
group_by(id)%>%
mutate(diff = time - lag(time),
diff_mins = as.numeric(diff, units = 'mins'))
Получает ошибку:
Ошибка в mutate_impl (.data, точки):
Столбец diff
должен иметь длину 3 (размер группы) или единицу, а не 6
Дополнительно: предупреждающее сообщение:
В unclass (time1) - unclass (time2):
длинная длина объекта не кратна короткой длине объекта