动态图表在我自己的计算机上显示得很好,尽管图表显示在另一个IE窗口而不是RStudio的内部窗口。 但是,当我使用R Shiny服务器在web上部署googleVis动态图表时,此错误消息显示:
Error: $ operator is invalid for atomic vectors
我还使用下面的命令检查了它们,它显示它们不是原子的:
>is.recursive(Fruits)
[1] TRUE
>is.atomic(Fruits)
[1] FALSE
可重复的代码如下,我简化了它并使用内部数据“fruit”来演示它;问题仍然存在,动态图表没有显示在同一个窗口中,而是出现在IE9的另一个窗口中。 当使用闪亮服务器部署时,它会变得很糟糕,动态图表根本没有出现并显示相同的错误消息
library(googleVis)
library(shiny)
shinyServer(function(input, output) {
output$motionchart2 <- renderGvis({
M1 <- gvisMotionChart(Fruits, idvar="Fruit", timevar="Year")
plot(M1)
})
})
library(shiny)
library(googleVis)
shinyUI(fluidPage(
titlePanel("Analysis"),
mainPanel(
navlistPanel(
tabPanel("MotionChart",h1("Motion Chart"),tableOutput("motionchart2"))
)
)
)
)
答案 0 :(得分:1)
在renderGivs部分渲染图表时,您不需要绘图功能。我稍微修改了代码的服务器部分。当您运行应用程序时,您必须在浏览器中打开它,否则图表将不会显示。
library(shiny)
library(googleVis)
ui = shinyUI(fluidPage(
titlePanel("Analysis"),
mainPanel(
navlistPanel(
tabPanel("MotionChart",h1("Motion Chart"),tableOutput("motionchart2"))
)
)
))
server = shinyServer(function(input, output) {
output$motionchart2 <- renderGvis({
gvisMotionChart(Fruits, idvar="Fruit", timevar="Year")
})
})
runApp(list(ui = ui, server = server))