1
私は対話的なk-meansプロットを作成しようとしていますが、入力の効果を見ることができます(純粋にランダムな選択ではなく中心を指定するなど)光沢のあるコードで。私はどのようにポイントを選択し、私のアプリが中心として使用するように覚えているかを理解しようとしています。私は反応的なコードでこれを行う方法を探してきましたが、これまでに試したことはすべて失敗しました。私の現在の作業コードは以下の通りです:Shinyのプロット上で選択した点を記憶している
# Pre Work
library(ggfortify)
dsnames <- names(iris[1:4])
cb_options <- list()
cb_options[dsnames] <- dsnames
# UI
shinyUI <- fluidPage(
titlePanel("Interactive K-Means Clustering Using Iris Dataset"),
sidebarPanel(
numericInput("numCenter", label=h4("Centers for k-means:"), min=2, max=30, value=3),
selectInput("xaxisGrp","X-Axis:", c("1"="1","2"="2"), choices=cb_options),
selectInput("yaxisGrp","Y-Axis:", c("1"="1","2"="2"), choices=cb_options),
tableOutput("info")
),
mainPanel(
plotOutput("plot1", click="plot_click", dblclick="plot_dbl")
)
)
# Server
shinyServer <- function(input, output, session) {
iris_k <- reactive({
kmeans(iris[1:4], centers=input$numCenter)
})
output$plot1 <- renderPlot({
ggplot() + geom_point(data=iris, aes_string(input$xaxisGrp, input$yaxisGrp), colour=iris_k()$cluster)
})
output$info <- renderTable({
nearPoints(iris, input$plot_click, xvar=input$xaxisGrp, yvar=input$yaxisGrp)[,c(input$xaxisGrp, input$yaxisGrp)]
})
}
# ShinyApp function call
shinyApp(ui=shinyUI, server=shinyServer)
どうすればいいですか?