У меня есть фрейм данных (df) с 4 столбцами: Дата начала, Дата окончания, Дата запуска и NMBR (Количество использования - числовое значение). У меня есть другой dataframe (использование) с двумя столбцами: время1 и использование. Я пытаюсь проверить, находится ли каждая дата в столбце time1 в кадре данных использования между какой-либо датой начала и окончания в кадре данных df. Если он попадает между начальной и конечной датой, тогда захватите NMBR, сохраните и увеличьте в столбце использования в кадре данных использования. Я получаю сообщение об ошибке
"Ошибка в as.POSIXlt.character (x, tz, ...): строка символов не имеет стандартного однозначного формата".
Я новичок в программировании r, но хотел бы помочь выяснить, как решить.
Вот пример кода, который поможет понять логику, которую я преследую:
time1 = seq(ISOdate(2018,09,17),ISOdate(2019,09,17), by = "hour")
usage = matrix(0,length(time1),1)
usage <- data.frame(time1,usage)
for (row in 1:nrow(df)) {
starttime <- df[row, "STRT"]
stoptime <- df[row, "STOP"]
launchtime <- df[row,"LNCHD"]
ncpu <- df[row,"NMBR"]
usage = apply(usage,1,add_ncpu)
add_ncpu = function(x){ if(x > starttime && x < stoptime){x = x + ncpu}}
}
df <- data91319_tier1pgms %>%
select(STRT, STOP, LNCHD, NMBR)
> head(df)
STRT STOP LNCHD NMBR
1 2018-09-13 2018-09-13 2018-09-13 48
2 2018-09-11 2018-09-11 2018-09-11 112
3 2018-09-11 2018-09-11 2018-09-11 112
4 2018-09-12 2018-09-12 2018-09-12 12
5 2018-09-12 2018-09-12 2018-09-12 4
6 2018-09-11 2018-09-11 2018-09-11 112