#r #shiny
Вопрос:
У меня есть функция, как показано ниже
fun1 <- function(){
list(
EXP ='selectInput',HOW ='selectInput',
WHAT = 'selectInput',WHERE = 'selectInput'
)
}
Это повторяется много раз в моем коде, поэтому я планирую объявить переменные здесь
e <- "EXP"
a <- "HOW"
b <- "WHAT"
c <- "WHERE"
Ожидаемый результат
fun1 <- function(){
list(
e ='selectInput',a ='selectInput',
b = 'selectInput',c = 'selectInput'
)
}
fun1()
$EXP
[1] "selectInput"
$HOW
[1] "selectInput"
$WHAT
[1] "selectInput"
$WHERE
[1] "selectInput"
Но результат, который я получаю, таков
> fun1 <- function(){
list(
e ='selectInput',a ='selectInput',
b = 'selectInput',c = 'selectInput'
)
}
> fun1()
$e
[1] "selectInput"
$a
[1] "selectInput"
$b
[1] "selectInput"
$c
[1] "selectInput"
Итак, можем ли мы вызывать переменные внутри функций
Ответ №1:
список принимает имя параметра буквально, это не похоже на диктат Python, где любое хэшируемое значение может быть ключом, они индексируются на 1 или называются*.
Вы можете сделать что-то вроде
fun1 <- function() {
setNames(
list("selectInput", "selectInput", "selectInput", "selectInput"),
c(e, a, b, c)
)
}
* Вы можете использовать числа, избегая их с помощью обратных ходов, но это превращает их в character
«потому names
character
что есть».