2017-08-22 28 views
0

ユーザーがファイルから入力したデータに基づいて、チャート(Shinyアプリ用)を表示したいと考えています。現在の設定では、データが見つからないというエラーメッセージが表示されるので、rChartsパッケージのプロットは表示されません。下に添付表示Rファイルの入力後に光沢のあるプロット

コード:このような何かを追加すること

ui.R

library(rCharts) 
library(shinydashboard) 
library(shiny) 
dashboardPage(
    skin = "black", 
    header <- dashboardHeader(
    titleWidth = 475 
), 
    sidebar <- dashboardSidebar(
    sidebarMenu(
    )  
), 
    body <- dashboardBody(
    tabItems(
     tabItem("setup", 
       box(width = 4,title = tags$b('Input Dataset'), solidHeader = T, status = 'primary', collapsible = T, 
        helpText("Default max. file size is 5 MB. Please upload both files for analysis in csv format."), 
        fileInput("file1","Upload the first file"), 
        fileInput("file2","Upload the second file") 
      ),     
       box(height = 500, width = 12,title = tags$b('Visualize Data'), solidHeader = T, status = 'primary', 
        showOutput("myPlot", "Highcharts")     
      ) 
    ) 
    ) 
) 
) 

server.R

library(shiny) 
library(rCharts) 
# Define server logic required to draw a histogram 
shinyServer(function(input, output) { 
    observe({ 
    file1 = input$file1 
    file2 = input$file2 
    if (is.null(file1) || is.null(file2)) { 
     return(NULL) 
    } 
    data1 = read.csv(file1$datapath) 
    data2 = read.csv(file2$datapath) 
    }) 
    output$myPlot<-renderChart2({ 
    # Prepare data 

    data1[,2] <- (data1[,2])/sum(data1[,2]) 

    # Create chart 
    a <- rCharts:::Highcharts$new() 
    a$chart(type = "column") 
    a$xAxis(categories = rownames(x)) 
    a$yAxis(title = list(text = "Normalized Intensity")) 
    a$data(data1) 
    a$set(width = 600, height = 500) 
    return(a) 
    }) 
}) 

答えて

0

してみてください。 nrowを確認して、Highcharts$new()オブジェクトを返すと、renderChart2は1と予想されます。

library(shiny) 
library(rCharts) 
# Define server logic required to draw a histogram 
shinyServer(function(input, output) { 

    data1 <- reactive({read.csv(file1$datapath)}) 
    data2 <- reactive({read.csv(file2$datapath)}) 

    output$myPlot<-renderChart2({ 
    data1 <- data1() 
    # Prepare data 
    if(nrow(data1==0)){return(Highcharts$new())} 
    data1[,2] <- (data1[,2])/sum(data1[,2]) 

    # Create chart 
    a <- rCharts:::Highcharts$new() 
    a$chart(type = "column") 
    a$xAxis(categories = rownames(x)) 
    a$yAxis(title = list(text = "Normalized Intensity")) 
    a$data(data1) 
    a$set(width = 600, height = 500) 
    return(a) 
    }) 
}) 
+0

この変更でも、私はまだ "オブジェクト 'file1'が見つかりません。私は何かを逃したか? – user2657817

関連する問題