2D списки параметров для применения - PullRequest
0 голосов
/ 01 апреля 2019

К сожалению, не смог понять, как это сделать в R, но идея кажется простой.

То, что я хочу, - это список пар чисел в диапазоне, где пара кулаков является первым значением, асумма первой пары с максимальной длиной, в конце у меня должно быть что-то вроде:

somefun <- function(start, end, step){...}
l <- somefun (5, 30, 5)
l 
#[[1]]
#[[1]][[1]]
#[1] 5
#
#[[1]][[2]]
#[1] 10
#
#[[2]]
#[[2]][[1]]
#[1] 11
#
#[[2]][[2]]
#[1] 16
#
#[[3]]
#[[3]][[1]]
#[1] 17
#
#[[3]][[2]]
#[1] 22
#
#[[4]]
#[[4]][[1]]
#[1] 23
#
#[[4]][[2]]
#[1] 28
#
#[[5]]
#[[5]][[1]]
#[1] 29

#[[5]][[2]]
#[1] 30

Итак, в окончательном списке должны быть первые start и последние end значения, но разницавнутри каждого списка не должно быть больше, чем шаг.

Кроме того, я не знаю, может ли это быть лучшим способом, но моя цель - передать эти значения с lapply, чтобы построить график с использованием сеткис gredExtra::grid.arrange

Поэтому список должен вписываться в этот код

p_list = lapply(myRanges, function(a,b){
  my_gg_function(myData[a:b], font=f)
})

do.call(gridExtra::grid.arrange, c(p_list, ncol=2))

Заранее спасибо

1 Ответ

2 голосов
/ 01 апреля 2019

Как насчет этого

somefun <- function(start, end, step){
  starts <- seq(start, end, step+1)
  ends <- pmin(starts + step, end)
  mapply(list, starts, ends, SIMPLIFY = FALSE)
}
somefun(5, 30, 5)

Мы просто используем базовый seq() и подгоняем по необходимости.

...