我想在给定用户定义的输入的情况下选择数据集的某些行。在这种情况下,我想根据字段中的不同位置运行不同的分类树。我在Shiny R中有一个selectInput(),它扩展了一个菜单,您可以在其中选择要运行树的字段位置。但是,目前它只针对所有位置运行,但不是针对每个位置运行。我非常感谢有关如何根据用户选择在数据集之间切换的一些帮助。
server.R
library(shiny)
library("rpart")
library("party")
library("partykit")
setwd("~/UNIVERSIDAD/EUR/Block 2/Machine Learning/Shiny App Both")
dat <- read.csv("Voetballers.csv")
dat <- dat[,3:20]
shinyServer(function(input, output, session) {
observe({
if(input$position=="All"){
dat <- dat
}
else if(input$position=="Forward"){
dat <- dat[dat$Position=="Forward",]
}
else if(input$position=="Midfielder"){
dat <- dat[dat$Position=="Midfielder",]
}
else if(input$position=="Defender"){
dat <- dat[dat$Position=="Defender",]
}
else if(input$position=="Goalkeeper"){
dat <- dat[dat$Position=="Goalkeeper",]
}
})
output$independent <- renderUI({
checkboxGroupInput("independent", "Independent Variables:",names(dat)[!names(dat) %in% input$dependent],names(dat)[!names(dat) %in% input$dependent])
})
runRegression <- reactive({
ctree(as.formula(paste(input$dependent," ~ ",paste(input$independent,collapse="+"))),data=dat)
})
runRegression2 <- reactive({
rpart(as.formula(paste(input$dependent," ~ ",paste(input$independent,collapse="+"))),data=dat)
})
output$plot1 <- renderPlot({
plot(runRegression())})
output$plot2 <- renderPlot({
plot(as.party(runRegression2()))})
})