Применить с метками = names (x), возвращает странный блестящий NULL HTML class; применяется с метками = as.character (names (x)), возвращает правильный класс HTML, но не ставит метки. Есть идеи почему?
REPREX:
library(shiny)
items <- list(
"A" = "a",
"B", = "b"
)
num_inputs <- function(items){
labels <- names(items)
temp. <- NULL
for(i in 1:length(items)){
temp. <- list(temp., numericInput(inputId = items[i],
label = labels[i],
value = 1,
min = 0,
max = 10,
step = 0.1)
)
}
return(temp.)
}
# doesn't work
num_inputs_fail <- function(items){
lapply(items, FUN = function(x){
numericInput(inputId = x,
label = as.character(names(x)),
value = 1,
min = 0,
max = 10,
step = 0.1)
})
}
attempt1 <- tagList(num_inputs(items))
attempt2 <- tagList(num_inputs_fail(items))
Обратите внимание здесь (только для попытки1 [1] и попытки [2], что метка почти совпадает, но фактическая метка отсутствует!
<div class="form-group shiny-input-container">
<label class="control-label" for="a">A</label>
<input id="a" type="number" class="form-control" value="1" min="0" max="10" step="0.1"/>
</div>
<div class="form-group shiny-input-container">
<label class="control-label" for="a"></label>
<input id="a" type="number" class="form-control" value="1" min="0" max="10" step="0.1"/>
</div>
Эта страница: Создание динамических элементов c количество элементов ввода с R / Shiny
Включает следующий код:
output$sliders <- renderUI({
members <- as.integer(input$members) # default 2
max_pred <- as.integer(input$max_pred) # default 5000
lapply(1:members, function(i) {
sliderInput(inputId = paste0("ind", i), label = paste("Individual", i),
min = 0, max = max_pred, value = c(0, 500), step = 100)
})
})
Внутри renderUI и блестящее связанное приложение, кажется, правильно имеет метки, но даже использование функции paste () внутри моего приложения не исправляет это.
Моя версия R: "Версия R 3.5.1 (2018-07- 02) "
Моя блестящая версия: '1.4.0'