我有一个关于Shiny的问题 . 我将通过提供我确实花时间与谷歌和SO档案,尝试了一些事情,但仍然不知何故错过了一些东西 . 我会为任何发布失礼而道歉,并提前感谢任何指导 .
我正在尝试我认为是一项非常基本的任务,以便学习Shiny,从一个Shiny画廊示例中调整代码 . 我将csv文件读入数据帧( df.shiny
) . 我想选择与一个设施相关的业务绩效数据(ITBpct)( df.shiny$Facility
的级别)并将其显示在SPC图表中(使用qcc) .
我的问题似乎与将 server.R
的数据提供给 ui.R
有关 . 我相信数据被读入数据帧(它在控制台中打印),但 ui.R
不可用 . 我只是忽略了一些东西,但还没有想出来 .
我正在使用Shiny站点上提到的文件夹结构,server.R和ui.R在工作目录子文件夹(“Shiny-App-1”)中,以及子文件夹中的数据到此文件夹(Shiny-App-1) /数据) .
我插入的用于帮助跟踪错误的代码通过在控制台中打印 SRV-2
和 UI-1
来运行 . Firefox打开 . 然后是错误 .
options(browser = "C:/Program Files (x86)/Mozilla Firefox/firefox.exe")
library(shiny)
runApp("Shiny-App-1")
server.R Code
library(shiny)
library(qcc)
print("SRV-1") # for debugging
df.shiny = read.csv("data/ITBDATA.csv")
print(df.shiny) # for debugging
print("SRV-2") # for debugging
shinyServer(function(input, output, session) {
# Combine the selected variables into a new data frame
# assign xrow <- Facility
print("SRV-3") # for debugging
selectedData <- reactive({ subset(df.shiny, Facility %in% input$xrow) })
print("SRV-4") # for debugging
output$plot1 <- renderPlot({ qcc(selectedData$ITBpct, type = 'xbar.one') })
})
ui.R Code
library(shiny)
print("UI-1") # for debugging
shinyUI(pageWithSidebar(
headerPanel('SPC Chart by Facility'),
sidebarPanel( selectInput('xrow', 'Facility', levels(df.shiny$Facility) ) ),
mainPanel( plotOutput('plot1') )
))
Error Message
ERROR: object 'df.shiny' not found
我可以提供数据 . (不确定如何将样本附加到此笔记 . )
SESSION INFO
> sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] splines stats graphics grDevices utils datasets methods base
other attached packages:
[1] plyr_1.8.1 forecast_5.4 timeDate_3010.98 zoo_1.7-11 doBy_4.5-10
[6] MASS_7.3-31 survival_2.37-7 gplots_2.13.0 car_2.0-20 ggplot2_0.9.3.1
[11] lattice_0.20-29 qcc_2.3 shiny_0.9.1
2 回答
问题是你在
ui.R
文件中使用df.shiny$Facility
并且没有在那里定义df.shiny
.ui
无法看到server
中的所有变量,它们还有其他通信方式 .要使其工作,您需要在服务器上构建
selectInput
,然后在UI中呈现它 . 在您的服务器中,添加然后将ui更改为
或者,您可以将
server.R
和ui.R
都需要访问的所有R对象放在global.R
文件中 .更多内容:http://shiny.rstudio.com/articles/scoping.html#global-objects