如果可以的话,我有一个关于使用Shiny读取csv文件的问题需要询问。
我花了很多时间搜索和阅读文档...如果我漏掉了什么,请谅解。大多数答案似乎都太花哨了,在选择数据文件时需要用户交互。我只是想让R Shiny在没有任何用户交互的情况下读取一个数据文件(仅限一个)。
我有标准的ui.R和server.R文件,并将它们放在一个工作目录中。
我有一个包含数据的csv文件,我将其放在名为“data”的子目录中(基于此处的教程:http://shiny.rstudio.com/tutorial/lesson5/)。
从R Studio内部,我手动将工作目录设置为ui.R和server.R文件所在的目录。 我加载shiny并运行runApp()。 在server.R的一行脚本中,尝试使用read.csv将数据读入对象'd.in'。
这并没有起作用,所以我尝试在读取csv文件之前强制更改工作目录,然后在读取数据之后并在shinyServer代码之前重新设置它。
代码片段:
我收到了一个错误信息:“ERROR: object 'd.in' not found”
如果在运行runApp之前手动加载csv数据文件,则其他所有内容似乎都能正常工作。我不确定自己搞砸了哪些事情,但希望得到任何帮助。 ui.R文件
我花了很多时间搜索和阅读文档...如果我漏掉了什么,请谅解。大多数答案似乎都太花哨了,在选择数据文件时需要用户交互。我只是想让R Shiny在没有任何用户交互的情况下读取一个数据文件(仅限一个)。
我有标准的ui.R和server.R文件,并将它们放在一个工作目录中。
我有一个包含数据的csv文件,我将其放在名为“data”的子目录中(基于此处的教程:http://shiny.rstudio.com/tutorial/lesson5/)。
从R Studio内部,我手动将工作目录设置为ui.R和server.R文件所在的目录。 我加载shiny并运行runApp()。 在server.R的一行脚本中,尝试使用read.csv将数据读入对象'd.in'。
这并没有起作用,所以我尝试在读取csv文件之前强制更改工作目录,然后在读取数据之后并在shinyServer代码之前重新设置它。
代码片段:
wd.datapath = paste0(getwd(),"/data")
wd.init = getwd()
setwd(wd.datapath)
d.in = read.csv("shinyDataITB.csv", header = TRUE)
setwd(wd.init)
我收到了一个错误信息:“ERROR: object 'd.in' not found”
如果在运行runApp之前手动加载csv数据文件,则其他所有内容似乎都能正常工作。我不确定自己搞砸了哪些事情,但希望得到任何帮助。 ui.R文件
##### ui.R #####
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("Supply ITB"),
sidebarPanel(
radioButtons(inputId = "in.facnum",
label = "Choose Facility",
choices = levels(d.in$facnum))
), # end sidebarPanel
mainPanel(
h3("SPC chart"),
plotOutput("plotDisplay")
) # end mainPanel
)) # end Sidebar
还有server.R文件
##### server.R #####
# load packages -------------------------------------------------------------
library(shiny)
library(qcc)
# load the data -------------------------------------------------------------
wd.datapath = paste0(getwd(),"/data")
wd.init = getwd()
setwd(wd.datapath)
#d.in = read.csv(file.choose(), header = TRUE)
d.in = read.csv("shinyDataITB.csv", header = TRUE)
setwd(wd.init)
# add proportions related to fill_lines -------------------------------------
d.in$whprop = d.in$wh / d.in$volume
d.in$dmprop = d.in$dm / d.in$volume
d.in$mmprop = d.in$mm / d.in$volume
# select SPC response variable (using proportions) --------------------------
qccvar = "whprop"
# shiny server body ---------------------------------------------------------
shinyServer(function(input,output) {
# Individuals (X) chart -----------------------------------------------------
output$plotDisplay <- renderPlot({
# select subset for specific facility
d.strata = subset(d.in, d.in$facnum == input$in.facnum) # subset
d.strata = d.strata[order(d.strata$year, d.strata$monthnum,
decreasing = FALSE),] # order by month
# create SPC chart
x.chart = qcc( d.strata[,qccvar], type = "xbar.one",
title = paste("Individuals chart\n", input$in.facnum, qccvar) )
}) # end renderPlot
}) # end shinyServer
### END CODE ###
我已经把数据文件放在这个Dropbox文件夹中 shinyDataITB.csv