Я пытаюсь создать пользовательский интерфейс, который позволит пользователю изменять нечисловые входные данные (все они имеют ограничения, такие как <3), а затем сможет выполнить дальнейший анализ нового вектора.Скажем, например, что у них есть вектор X = (1, 2, 3, <1, 5, 3).Я хотел бы иметь числовой ввод с именем «<3», и любое введенное значение будет заменено. </p>
Я могу создать вход для каждого нечислового ввода, однако он имеет заголовокЯ хочу, и div-group блестящий-контейнер-ввода .
Когда я добавляю деталь, чтобы перезаписать копию оригиналаданные не компилируются, и я получаю сообщение об ошибке: Warning: Error in subset.default: argument "subset" is missing, with no default
Пока лучшее, что я могу сделать, это:
l <- c(1,2,3,4,5,7, '<1', 4,5, 7, '<3') # Example input
library(shiny)
ui <- fluidPage(
titlePanel("Plot non numeric Data"),
sidebarLayout(
sidebarPanel(
uiOutput("LowerLimits")
),
mainPanel(
plotOutput("distPlot")
)
)
)
server <- function(input, output) {
l2 = l
data <- reactiveValues(nonN = factor(l[which(is.na(suppressWarnings(as.numeric(l))))]) )
# Bad bit of code
output$LowerLimits <- renderUI({
LL <- list()
if(length(data$nonN) > 0){
for(i in 1:length(data$nonN)){
assign(paste("Test", levels(data$nonN)[i]),numericInput(levels(data$nonN)[i],paste("Test", levels(data$nonN)[i]), value = NULL) )
LL <- c(LL, get(paste("Test", levels(data$nonN)[i])))
}
}
LL
})
# Really bad bit of code that crashes the app
observe({
if(length(data$nonN) > 0){
for(i in 1:length(data$nonN)){
l2[which(is.na(suppressWarnings(as.numeric(l))))][i] = subset(x = input, select = levels(data$nonN)[i])
}
}
})
output$distPlot <- renderPlot({
plot(l2)
})
}
# Run the application
shinyApp(ui = ui, server = server)
Есть ли способ 1) Не иметь* div form-group ... `часть ввода 2) Возможность изменять мои данные
Пример ввода в первой строке - это просто пример.Он может иметь любую длину и любое количество числовых или не числовых значений.
Заранее спасибо.