嗨我正在做一个Rshiny仪表板,其中包含一组三个变量,我想将它们表示为要选择的选项。如果用户没有勾选该框,则应将其从数据文件中排除,并将其输入到群集模型中。
我很难将它连接到我的输入数据,其方式是未选择的变量被排除在模型中的数据之外:
这是示例代码 - 任何帮助表示赞赏。
titlePanel("Customer"),
sidebarLayout(
sidebarPanel(
sliderInput("Clusters",
"Number of Clusters:",
min = 1,
max = 10,
value = 1
),
checkboxGroupInput("Checkboxgroup",
h3("variable selection"),
choices = list("v1" = 1,
"v2" = 2,
"v3" = 3),
selected = c(1, 2, 3))
), mainPanel(position="right",
plotOutput("distPlot", height = 500, width = 500)
)
)
)
server <- function(input, output) {
data_train= data[ ,3:14]
### here is where i need to excluded the selected boxes from the data_train on the above line
k_means=reactive({
kmeans(data_train, centers=input$Clusters, nstart = 50)
})
output$distPlot <- renderPlot({
plotcluster(data_train, k_means()$cluster)
})
}
# Run the application
shinyApp(ui = ui, server = server)
在我看来,你从未在服务器中使用过checkboxgroup。另外,您可以排除的变量不是checkboxgroup中的选项,而是v3。假设你只想要变量3,4和5被排除在外,我会建议一些东西。另外,我还假设您只需要变量3到14,因为它就是您所做的。
首先,您更改复选框,如下所示:
checkboxGroupInput("Checkboxgroup",
h3("variable selection"),
choices = list("v3" = 3,
"v4" = 4,
"v5" = 5),
selected = c(3:5))
然后您可以更改定义训练集的行,如下所示:
mytrain=reactive({
vars=3:14;vars=vars[!vars%in%as.numeric(input$Checkboxgroup)]
data_train= data[ ,vars]
data_train
})
和你的分析:
k_means=reactive({
kmeans(mytrain(), centers=input$Clusters, nstart = 50)
})
如果我正确地理解了你的问题,那就应该这样做。