Проверьте, попадает ли список дат между списками диапазонов дат, затем добавьте связанные значения в новый фрейм данных с помощью программирования R - PullRequest
1 голос
/ 12 октября 2019

У меня есть фрейм данных (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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...