我正在使用以下平台和版本的R:
平台x86_64-apple-darwin10.8.0
version.string R版本3.0.3(2014-03-06)
我是新手,我正在尝试使用rWBclimate数据集将一个简单的应用程序放在一起,这是R中的一个包:
http://cran.r-project.org/web/packages/rWBclimate/rWBclimate.pdf
我收到以下错误:
$.shinyoutput
中的错误(输出,gvis):
不允许从shinyoutput对象中读取对象。
使用以下脚本时。 ui.R
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,就像上面的版本一样。
答案 0 :(得分:9)
你只是错过了一个&#39; - &#39;在您的server.R文件的末尾。如果仔细观察输出$ gvis,你会注意到你没有分配输出$ gvis,但实际上是用<
运算符将它与你渲染的Gvis对象进行比较(这就是为什么你得到关于从输出中读取对象的错误)。只需将output$gvis < renderGvis({...
更改为output$gvis <- renderGvis({...
即可,一切正常。