1

rpivottable を含む光沢のあるアプリを実行しようとしています。

私の設定:devtools 1.8.0、htmlwidgets 0.4.2、rpivotTable 0.1.4.1、shiny 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
    })

  }
)

誰かがすでにこのエラーに遭遇しましたか?

一番、

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 に答える