Я пытаюсь создать модель линейной регрессии через Shiny, где пользователь может ввести расу, пол и / или род занятий и вывести информацию о доходе.Мой проект о неравенстве в заработной плате.
Я продвинулся достаточно далеко, чтобы кодировать следующее, но ничего не показывает (например, приложение просто не запускается).Я надеюсь, что я не перегружен кодом, но я не уверен, как показать проблему, не показывая части сервера и пользовательского интерфейса.
Я чувствую, что в моем скрипте чего-то не хватает.Как именно R узнает, чтобы пользователь мог ввести, скажем, расу = белая / черная / азиатская (особенно, если в моих данных раса закодирована как 1, 2, 3 и т. Д.).Я предполагаю, что то, чего мне не хватает, также объясняет, почему это не сработает.
mydata<-read.csv("usa_00004.csv")
server<-function(input, output) {
regFormula<- reactive({
as.formula(paste("Income"," ~ ",paste(input$iv1,collapse="+")))
})
model <- reactive({
lm(regFormula(), data = mydata)
})
covar.label <- reactive({
covars<-character()
if ('SEX' %in% input$iv1){
covars <- c(covars,"SEX")
}
if ('RACE' %in% input$iv1){
covars <- c(covars,"RACE")
}
if ('OCC' %in% input$iv1){
covars <- c(covars,"OCC")
}
if ('INCWAGE' %in% input$iv1){
covars <- c(covars,"INCWAGE")
}
return(covars)
})
output$regTab <- renderText({
covars <- covar.label()
stargazer(model(),type="html",dep.var.labels ="Income Prediction",covariate.labels = covars, omit.stat = c("f","ser","aic","adj.rsq"))
})
}
# Nav bar tab
tabPanel(
"Income prediction",
headerPanel("Income Prediction Model"),
# The sidebar contains the option for the end user to select
# multiple independent variables
sidebarLayout(
position = "right",
sidebarPanel(
h2("Build your model"),
br(),
checkboxGroupInput(
"iv1",
label = "Select a factor. You can change your selection at any time.",
list(
"SEX" = "SEX",
"RACE" = "RACE",
"OCC" = "OCC",
"INCWAGE" = "INCWAGE"
),
selected = "INCWAGE"
)
),
mainPanel(br(),
tabsetPanel(
type = "tabs",
tabPanel(
"Regression Table",
h3("Table of Regression Coefficients"),
HTML('</br>'),
tableOutput("regTab"),
HTML('</br>'),
helpText(
"Help text"
)