selectInput() 没有传递任何东西给 selected_data() (R shiny)
selectInput() not passing anything to selected_data() (R shiny)
我正在开发 R shiny 应用程序。请注意,我正在尝试从我的 mysql 服务器加载数据。所以我使用了 RMySQL 包的帮助。
在我的 ui.R 文件中,我有这个:
selectInput("pitchername","Pitcher Name:", choices = unique(pitcher_names$pitcher_name), selected = "Chan Ho Park"),
我有加载到 'pitcher_names' 上的 csv 文件,它给出了姓名列表。在下拉菜单中,我有可供选择的名称列表。
在我的 server.R 文件中,我有这个:
selected_data <- reactive({
query <- dbSendQuery(conn = con, statement = paste('SELECT * FROM pitch_velo WHERE pitcher_name = ', "\"",input$pitchername,"\"",';',sep=''))
pitch_data <- dbFetch(query,n=-1)
minyear <- input$year[1]
maxyear <- input$year[2]
velo <- pitch_data %>% group_by(pitcher_name, pitch_type, Year) %>% summarise(velocity = mean(start_speed)) %>% arrange(velocity) %>% dplyr::filter(pitcher_name %in% input$pitcher_name) %>% dplyr::arrange(pitcher_name) %>% dplyr::filter(Year >= minyear) %>% dplyr::filter(Year <= maxyear) %>% dplyr::filter(pitch_type %in% input$pitch_type)
print(velo)
})
在处理了半天之后,我意识到唯一的问题是从 selectInput() 中选择的投手名称没有被传递到 server.R 中的 dbSendQuery 函数。我该怎么做才能完成这项工作?
我认为您输入有误:
filter(pitcher_name %in% input$pitcher_name)
不应该是:
filter(pitcher_name %in% input$pitchername)
实际上,我看不到过滤结果查询的意义,因为您已经将条件放入查询中。
我正在开发 R shiny 应用程序。请注意,我正在尝试从我的 mysql 服务器加载数据。所以我使用了 RMySQL 包的帮助。
在我的 ui.R 文件中,我有这个:
selectInput("pitchername","Pitcher Name:", choices = unique(pitcher_names$pitcher_name), selected = "Chan Ho Park"),
我有加载到 'pitcher_names' 上的 csv 文件,它给出了姓名列表。在下拉菜单中,我有可供选择的名称列表。
在我的 server.R 文件中,我有这个:
selected_data <- reactive({
query <- dbSendQuery(conn = con, statement = paste('SELECT * FROM pitch_velo WHERE pitcher_name = ', "\"",input$pitchername,"\"",';',sep=''))
pitch_data <- dbFetch(query,n=-1)
minyear <- input$year[1]
maxyear <- input$year[2]
velo <- pitch_data %>% group_by(pitcher_name, pitch_type, Year) %>% summarise(velocity = mean(start_speed)) %>% arrange(velocity) %>% dplyr::filter(pitcher_name %in% input$pitcher_name) %>% dplyr::arrange(pitcher_name) %>% dplyr::filter(Year >= minyear) %>% dplyr::filter(Year <= maxyear) %>% dplyr::filter(pitch_type %in% input$pitch_type)
print(velo)
})
在处理了半天之后,我意识到唯一的问题是从 selectInput() 中选择的投手名称没有被传递到 server.R 中的 dbSendQuery 函数。我该怎么做才能完成这项工作?
我认为您输入有误:
filter(pitcher_name %in% input$pitcher_name)
不应该是:
filter(pitcher_name %in% input$pitchername)
实际上,我看不到过滤结果查询的意义,因为您已经将条件放入查询中。