R: Библиотека (блестящая) с библиотекой (DT): создание <selectInput>для разных цветов на графике - PullRequest
0 голосов
/ 29 сентября 2019

Мне очень жаль беспокоить вас.Я новичок в программировании R и программировании в целом.В 95% случаев, когда я ищу и читаю онлайн примеры, я не понимаю их.

У меня есть коды для блестящего приложения.Я не писал эти коды.Эти коды были указаны по умолчанию.Когда вы запускаете его, в нижней таблице появляется график «точек», который не имеет цвета.Когда вы щелкаете по определенной строке, «точка», которую она представляет, становится красной.

library(shiny)

library(DT)
ui <- fluidPage(
    h3("t1"),
    tableOutput("t1"),
    hr(),
    fluidRow(
        column(9, h3("dt1"),
               dataTableOutput("dt1")),
        column(3, h3("x4"),
               verbatimTextOutput("x4"))),
    hr(),
    fluidRow(
        column(8, h3("dt2"),
               dataTableOutput("dt2")),
        column(4, h3("p5"),
               plotOutput("p5")))
)
options(error = function() traceback(2))
server <- function(input, output, session) {
    output$t1 <- renderTable(iris[1:10,], striped = TRUE, hover = TRUE)
    output$dt1 <- renderDataTable(iris, options = list( pageLength = 5))
    output$x4 <- renderPrint({
        s = input$dt1_rows_selected
        if (length(s)) {
            cat('These rows were selected:\n\n')
            cat(s, sep = ', ')
        }
    })

    output$dt2 <- renderDataTable(iris,
                                  options = list(pageLength = 5),
                                  server = FALSE)
    output$p5 <- renderPlot({
        s <- input$dt2_rows_selected
        plot(iris$Sepal.Length, iris$Sepal.Width)
        if (length(s)) {
            points(iris[s, c("Sepal.Length", "Sepal.Width"), drop = F],
                   pch = 19, cex = 1, col = "red")
        }
    })
}
shinyApp(ui, server)

Вопрос в том, как создать selectInput для разных имен цветов, чтобы пользователь мог решить, какой цветиспользовать, а не просто использовать красный цвет по умолчанию?

Исходя из моего собственного исследования, я думаю, что мне нужно добавить 2 строки кода в пользовательском интерфейсе и отредактировать 1 строку кода на сервере.К сожалению, эти методы не работают, хотя.Внутри UI

selectInput("color", "What is your preferred color?", choices = c("blue", "gold", "green", "pink", "red", "yellow"))
textOutput("color")

Внутри сервера меняя «красный» в этом коде

points(iris[s, c("Sepal.Length", "Sepal.Width"), drop = F],
                       pch = 19, cex = 1, col = "red")

на «input $ color»

points(iris[s, c("Sepal.Length", "Sepal.Width"), drop = F],
                           pch = 19, cex = 1, col = "input$color")

Я получил сообщение об ошибкениже, когда я выбираю цвета, которые хочу, и пытаюсь раскрасить свои графики (выбирая строки в таблице dt2)

invalid color name 'input$color'

Извините, что беспокою всех вас.Я понимаю, что большинство из вас заняты своей собственной жизнью, и я очень ценю любую помощь или совет.

1 Ответ

0 голосов
/ 29 сентября 2019

Проблема заключалась в том, что "input$color" должно быть input$color (без кавычек).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...