Я пытаюсь сделать что-то вроде этого:
opts = list( width=128, overlap=width/2, )
Но, как и ожидалось, я получаю
Error: object 'width' not found
Что такое хорошая идиома для спасения этого фрагмента кода?
Вы можете использовать dplyr::lst, что аналогично list, но здесь вы можете создавать компоненты последовательно.
dplyr::lst
list
dplyr::lst( width = 128, overlap=width/2, ) #$width #[1] 128 #$overlap #[1] 64
Другой вариант:
opts = list( width={width<-128}, overlap=width/2 )
Используя base R, лучшее, что вы могли бы сделать, - это сначала определить список с элементом width, а затем повторно использовать его в более позднем назначении:
lst <- list(width=128) lst$height <- lst$width / 2 lst $width [1] 128 $height [1] 64