Опции
knitr могут быть указаны как R-выражения. Per документация «output» на веб-странице knitr :
Обратите внимание, что все параметры в knitr могут принимать значения из R-выражений, что приводит к признаку условной оценки, введенной в основное руководство. Короче говоря,
blockquote>eval=dothis
означает, что реальное значение eval берется из переменной с именемdothis
в глобальной среде; манипулируя этой переменной, мы можем включить / выключить оценку партии кусков.Другими словами, если вы пишете несколько фрагментов, таких как:
```{r label} doNextChunk <- as.logical(rbinom(1,1,.5)) ``` ```{r conditional, eval = doNextChunk} "hello world!" ```
Если у них у всех есть имя и цена, вы можете сделать что-то вроде этого, для последней части вы можете выгрузить другой массив и объединить их в один большой массив:
protocol Item {
var name: String { get set }
var price: Int { get set }
}
struct Fish: Item {
var name: String
var price: Int
}
var fishArray: [Fish] = [ Fish(name: "Bass", price: 1),
Fish(name: "Pike", price: 2),
Fish(name: "Carp", price: 3),
Fish(name: "Bluegill", price: 4),
Fish(name: "Catfish", price: 5)]
struct Weapons: Item {
var name: String
var price: Int
}
var weaponsArray: [Weapons] = [ Weapons(name: "Sword", price: 1),
Weapons(name: "Knife", price: 2),
Weapons(name: "Gun", price: 3),
Weapons(name: "Poison", price: 4),
Weapons(name: "Hammer", price: 5)]
var items: [Item] = (fishArray as [Item]) + (weaponsArray as [Item])
items.filter { (item) -> Bool in
return item.name.lowercased().contains("C".lowercased())
}