1

我正在尝试运行一个闪亮的应用程序,包括一个 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

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

类型错误: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
    })

  }
)

有人已经遇到这个错误了吗?

最好的,

4

2 回答 2

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)
       })

  }
)
于 2015-06-01T16:37:05.790 回答
-3

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

实际上 - 这是一个有效的例子。

感谢分享。

于 2015-06-01T13:36:08.197 回答