Я почти уверен, что вы могли бы найти похожие работающие примеры, но R datetimes - это общий источник путаницы ios, поэтому, я думаю, я сэкономлю вам время:
dat <- read.table(text="Sample.Time Dose.Time
2019-06-07T08:23 2019-06-07T07:53
2019-06-07T08:53 2019-06-07T07:53
2019-06-07T09:23 2019-06-07T07:53
2019-06-07T09:53 2019-06-07T07:53
2019-06-07T10:23 2019-06-07T07:53
2019-06-07T10:53 2019-06-07T07:53
2019-06-07T11:53 2019-06-07T07:53
2019-06-07T13:53 2019-06-07T07:53
2019-06-07T15:53 2019-06-07T07:53
2019-06-07T17:53 2019-06-07T07:53", head=TRUE)
dat$Time.After.Dose <- difftime( as.POSIXct( dat[[1]], format="%Y-%m-%dT%H:%M"),
as.POSIXct( dat[[2]], format="%Y-%m-%dT%H:%M"),
units="min")
> dat
Sample.Time Dose.Time Time.After.Dose
1 2019-06-07T08:23 2019-06-07T07:53 30 mins
2 2019-06-07T08:53 2019-06-07T07:53 60 mins
3 2019-06-07T09:23 2019-06-07T07:53 90 mins
4 2019-06-07T09:53 2019-06-07T07:53 120 mins
5 2019-06-07T10:23 2019-06-07T07:53 150 mins
6 2019-06-07T10:53 2019-06-07T07:53 180 mins
7 2019-06-07T11:53 2019-06-07T07:53 240 mins
8 2019-06-07T13:53 2019-06-07T07:53 360 mins
9 2019-06-07T15:53 2019-06-07T07:53 480 mins
10 2019-06-07T17:53 2019-06-07T07:53 600 mins
Ключевые моменты в том, что есть функция разницы во времени и что аргументы этой функции должны быть класса POSIXct, а as.POSIXct
, в свою очередь, должен иметь правильную строку формата для текстовых значений, которые вы представляете. Технически эти столбцы являются значениями факторов, поэтому я, вероятно, должен был добавить stringsAsFactors = FALSE на этапе ввода.