【发布时间】:2019-10-18 02:25:36
【问题描述】:
我正在尝试借助滑块更改 2 个 ValueBoxes 中的值(属性“pf_score”和“ef_score”每年的平均值),滑块的时间为 2008-2016 年。 输出如我所愿可见,但我也看到一个错误“'closure'类型的对象不是子集”
更新:我无法通过单击 Run-App 来运行整个代码。我收到错误“找不到函数 df1”。我必须先单独读取所有数据帧,然后单击 Run-App 才能看到 UI。
server.r
require(shiny)
require(dplyr)
require(shinydashboard)
shinyServer(function(input,output){
df <- read.csv("hfi_cc_2018.csv", header = T)
summary(df)
sapply(df, function(x) sum(is.na(x)))
#Replace Null Values
df[is.na(df)] <- 0
df[,5:ncol(df)] <- round(df[,5:ncol(df)], 2)
#adding selective columns new df1
#https://stackoverflow.com/questions/10085806/extracting-specific-columns-from-a-data-frame
df1<- df[, (names(df) %in% c("year","pf_score", "ef_score"
))]
output$select_years <- renderUI(
{
card <- df1 %>%
filter(year == input$years)
output$pfrank = renderValueBox(
valueBox(round(mean(card$pf_score),1),
"Personal Freedom Score")
)
output$efrank = renderValueBox(
valueBox(round(mean(card$ef_score),1),
"Economic Freedom Score")
)
}
)
})
ui.r
require(shiny)
require(shinydashboard)
shinyUI(
dashboardPage(
dashboardHeader(title = "Human Freedom Index", titleWidth = 300),
dashboardSidebar(
sliderInput("years","Select Year:",
min = min(df1$year),
max = max(df1$year),
value = min(df1$year),
step = 1),
selectInput("variable","Select Freedom Factor:",
choices = colnames(df1)
)
),
dashboardBody(
uiOutput("select_years"),
fluidRow(
valueBoxOutput("pfrank"),
valueBoxOutput("efrank")
)
)
)
)
【问题讨论】:
-
把
df改成DF看看会发生什么 -
嗨迈克尔,尝试更改它,仍然无法正常工作!
-
错误是否改变了?
-
没有。这是同样的错误。此外,我刚刚意识到我无法使用 Run App 运行我的代码。我必须一个接一个地运行所有数据帧,然后单击运行应用程序才能成功查看 UI。
标签: r shiny shinydashboard