闪亮服务器上的rpivotTable无法正常工作

时间:2015-05-29 10:51:29

标签: r shiny shiny-server rpivottable

我正在尝试运行一个包含rpivottable的闪亮应用程序。

我的配置: devtools 1.8.0,htmlwidgets 0.4.2,rpivotTable 0.1.4.1,有光泽0.12.0

R版本3.1.2(2014-10-31)

Ubuntu 14.04.1 LTS

我的代码在本地完美运行,但在服务器上崩溃。在浏览器上,我在控制台上收到此错误:

TypeError:x未定义

它链接到此代码:

HTMLWidgets.widget({

    name: 'rpivotTable',

    type: 'output',

    initialize: function(el, width, height) {

        return {}

    },

    renderValue: function(el, x, instance) {
        x.data = HTMLWidgets.dataframeToD3(x.data);

        var derivers = $.pivotUtilities.derivers;
      var tpl = $.pivotUtilities.aggregatorTemplates;

      x.params.renderers = $.extend(
        $.pivotUtilities.renderers,
        $.pivotUtilities.d3_renderers,
        $.pivotUtilities.c3_renderers
      );


      $('#'+el.id).pivotUI(
            x.data, x.params
      );

    },

    resize: function(el, width, height, instance) {

    }

});

我的R代码如下:

if (interactive()) {  lib.path <- my.path.local
} else {  lib.path <- my.path.server }

### packages ###
library(shiny, lib.loc =  lib.path)
library(htmlwidgets, lib.loc = lib.path)
library(rpivotTable, lib.loc = lib.path)

data <- data.frame(var1 = c("mod1", "mod2"), value = c(1, 2))

shinyApp(
  ui =  fluidPage(
    sidebarLayout(
      sidebarPanel(
    textOutput("config"),  textOutput("path"), textOutput("version"))
    , mainPanel(
     rpivotTableOutput("test")
    )
    )), 

  server = function(input, output) {
       output$test <- rpivotTable::renderRpivotTable({
         rpivotTable(data = data)
       })

    output$config <- renderText({ 
      tt <- installed.packages()
     paste(paste(tt[tt[, 1] %in% c("shiny", "htmlwidgets", "rpivotTable", "devtools") , 1], 
                tt[tt[, 1] %in% c("shiny", "htmlwidgets", "rpivotTable", "devtools") , 3]), collapse = ", ")
    })

    output$path <- renderText({ 
      ll <- .libPaths()
      ll
    })

    output$version <- renderText({ 
      ss <- sessionInfo()
      ss[[1]]$version.string
    })

  }
)

是否有人遇到过此错误?

最好的,

2 个答案:

答案 0 :(得分:1)

这个例子很实用。

写得更好:

library(shiny)
library(rpivotTable)

data <- data.frame(var1 = c("mod1", "mod2"), value = c(1, 2))

shinyApp(
  ui =  fluidPage(
    sidebarLayout(
      sidebarPanel(mainPanel(
     rpivotTableOutput("test")
    )
    )), 

  server = function(input, output) {
       output$test <- rpivotTable::renderRpivotTable({
         rpivotTable(data = data)
       })

  }
)

答案 1 :(得分:-3)

YCR:没有评论,但你有一个可以分享Shiny + rpivotTable的工作示例吗?

实际上 - 这是一个工作示例。

感谢分享。