Настройте заголовок и подзаголовок в базе R

Рекурсивное решение:

  def generator(x: List[List[Int]]): List[List[Int]] = x match {
    case Nil    => List(Nil)
    case h :: _ => h.flatMap(i => generator(x.tail).map(i :: _))
  }

, которое дает:

val a = List(List(1, 2, 3), List(4, 5))       
val b = List(List(1, 2, 3), List(4, 5), List(6, 7))

generator(a)    //> List(List(1, 4), List(1, 5), List(2, 4), 
                //| List(2, 5), List(3, 4), List(3, 5))
generator(b)    //> List(List(1, 4, 6), List(1, 4, 7), List(1, 5, 6), 
                //| List(1, 5, 7), List(2, 4, 6), List(2, 4, 7),
                //| List(2, 5, 6), List(2, 5, 7), Listt(3, 4, 6), 
                //| List(3, 4, 7), List(3, 5, 6), List(3, 5, 7))

Обновление: второе case также может быть записано как понимание for, которое может быть немного яснее:

def generator2(x: List[List[Int]]): List[List[Int]] = x match {
  case Nil    => List(Nil)
  case h :: t => for (j <- generator2(t); i <- h) yield i :: j
}

Обновление 2: для больших наборов данных, если у вас закончилась нехватка памяти, вы можете использовать потоки вместо этого (если имеет смысл обрабатывать результаты пошагово). Например:

def generator(x: Stream[Stream[Int]]): Stream[Stream[Int]] = 
  if (x.isEmpty) Stream(Stream.empty) 
  else x.head.flatMap(i => generator(x.tail).map(i #:: _))

// NB pass in the data as Stream of Streams, not List of Lists
generator(input).take(3).foreach(x => println(x.toList))

>List(0, 0, 0, 0, 0, 0, 0)
>List(0, 0, 0, 0, 0, 200, 0)
>List(0, 0, 0, 0, 100, 0, 0)
0
задан Jason Hunter 5 March 2019 в 11:42
поделиться

1 ответ

Основываясь на предложениях Цетта, как насчет использования mtext следующим образом:

plot(mtcars, oma=c(2, 3, 5, 2))
mytitle = "I want main title NOT bold and left aligned"
mysubtitle = "Sub title should be under the main title left aligned"
mtext(side=3, line=3, at=-0.07, adj=0, cex=1, mytitle)
mtext(side=3, line=2, at=-0.07, adj=0, cex=0.7, mysubtitle)

Опция adj=0 запрашивает выравнивание по левому краю.
Опции line= определяют вертикальное положение каждого заголовка, считая от границы верхнего поля графика.
Вы можете играть с опцией at=, чтобы перемещать заголовки по желанию.

Обратите внимание также на использование опции oma= в вызове plot(), чтобы было достаточно места для размещения заголовков над графиком пар.

Вот сюжет: enter image description here

0
ответ дан mastropi 5 March 2019 в 11:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: