В seq()
, «Вторая форма создает из, от + по .. ., до значения последовательности, меньшего или равного. " А также, поскольку 35280 не находится в запрошенной последовательности, он не возвращается.
Но вы можете использовать вычисление в аргументах, которые вы хотите включить в следующее значение. Поскольку вы знаете значение to
, присвойте ему имя и используйте его.
by <- 200
out <- 35280
x <- seq(from = by, to = (out + by - out %% by), by = by)
length(x)
# [1] 177
x[length(x)]
# [1] 35400
Если вы хотите включить значение to
, даже если он не в запрашиваемой последовательности, вы можете написать небольшую функцию, чтобы добавить его на
seqil <- function(..., include.last = TRUE) {
x <- do.call(seq.default, list(...))
if(include.last) c(x, to) else x
}
by <- 200
x <- seqil(from = by, to = 35280, by = by)
tail(x)
# [1] 34400 34600 34800 35000 35200 35280
Что вывод, что вы хотите? Если вы хотите рассчитывать от 200 до 35280 на 200 секунд, то функция выполняет то, что она должна делать –
Я знаю, что это так, но я прошу, как изменить его, чтобы добавить последнее значение в качестве части вывода (даже если это не в исходной последовательности, выполняемой параметром by). Ответы ниже выполняет эту работу. – Bury