我正在使用以下R的平台和版本:

平台x86_64-apple-darwin10.8.0
version.string R版本3.0.3(2014-03-06)

我是Shiny的新手,我正在尝试使用rWBclimate数据集(这是R中的软件包)将一个简单的应用程序组合在一起:

http://cran.r-project.org/web/packages/rWBclimate/rWBclimate.pdf

我收到以下错误:
$.shinyoutput错误(输出,gvis):
不允许从ShinyOutput对象读取对象。

使用以下脚本时。
用户界面

library(shiny)
suppressPackageStartupMessages(library(googleVis))

shinyUI(pageWithSidebar(
  # Application title
  headerPanel("Global Temperature"),

  #sidebar with controls to select var to plot year
  sidebarPanel(
    selectInput("fromyr", "Select Years:", choices=c("1920", "1940","1960", "1980"))
  ),
  mainPanel(
    htmlOutput("gvis")#,
  )

)
)

和server.R
library(shiny)
#install.packages("rWBclimate")
library(rWBclimate)
library(ggplot2)
library(rCharts)
suppressPackageStartupMessages(library(googleVis))

countries <-c("USA","BRA","CAN","YEM")

# get temperature data for ensembles
st=1900
en=2100
data_df_all <- get_ensemble_temp(countries, type="annualavg", start=st, end=en)

data_df<-subset(data_df_all,data_df_all$percentile==50) #subset to median percentile
data_df<-subset(data_df, select=-percentile)
data_df<-subset(data_df, data_df$scenario!="b1")
data_df<-subset(data_df, select=-scenario)
data_df<-subset(data_df, data_df$fromYear==1920)

shinyServer(function(input, output){

  #df<-reactive({
#    switch(subset(data_df, data_df$fromYear==input$fromyr),
#           "1920"= 1920,
#           "1940" = 1940,
#           "1960" = 1960,
#           "1980" = 1980)
    #dfi<-subset(data_df, data_df$fromYear==input$fromyr)
    #subset(data_df, data_df$fromYear==1920)
    #data_df[data_df$fromYear == input$fromyr, ]
    #subset(data_df, data_df$scenario==input$scenar)
    #subset(alldat, alldat$fromYear==input$fromyr)
#  })

  output$gvis < renderGvis({
#    gvisGeoChart(dat=df(), locationvar="locator", colorvar="data")
    gvisGeoChart(data_df, locationvar="locator", colorvar="data")
  })
})

任何见解都会很棒。我尝试使用反应性语句,以及将文件直接放入gvisGeoChart(与上述版本一样)。

最佳答案

您在server.R文件的末尾仅缺少一个“-”。如果仔细查看output $ gvis,您会注意到您不是在分配output $ gvis,而是使用<运算符将其与呈现的Gvis对象进行比较(这就是为什么从输出读取对象时会出错的原因)。只需将output$gvis < renderGvis({...更改为output$gvis <- renderGvis({...,一切就可以正常工作。

关于r - 不允许从ShinyOutput对象读取对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26285470/

10-13 07:58