2017-01-26 4 views
1

現在、私は自分自身に光沢を教えようとしており、少し問題があります。 私がプロットしたいデータセットを持つアプリケーションを作成したいのですが、それに変数をプロットしたい別のメニュー(日付の列に対して)が続きます。光沢のある再入力入力に基づいて、異なるデータセットと列を使用して異なる反応グラフをプロット

私は私は選択されたデータセットを「呼び出す」方法を考え出すのに苦労しています。私は多くの投稿を読んでいます(例えば12)が、複数のデータセットの問題に対処できないようです。

現在のところ、私の問題は最後の数行にあります(outVar()内のmydataにはどうしますか?)。

誰かが正しい方向に私を指すことができたらそれはすばらしいでしょう!

library(shiny) 
library(ggplot2) 

datafiles<-c("Data/try2.txt","Data/Poland.txt","Data/Romania.txt","Data/Hungary.txt","Data/KHR.txt") 


runApp(list(
    ui = bootstrapPage(
    selectInput('dataset', 'Choose Dataset', datafiles), 
    selectInput('columns', 'Columns', ""), 
    plotOutput('graph') 
), 

    server = function(input, output, session){ 
    outVar = reactive({ 
     mydata = read.table(paste0(input$dataset), sep = '\t', header=TRUE) 
     names(mydata) 

    }) 
    observe({ 
     updateSelectInput(session, "columns", 
         choices = outVar() 
    )}) 
    output$graph<-renderPlot({data<- outVar$mydata 
    plot(data$Date,data$paste0(input$columns))}) 
    } 
)) 

shinyApp(ui=ui, server=server)  
+0

アプリでエラーメッセージを取得しているのに役立ちますか?もしそうなら、それは何を言っているのですか? 出力$グラフでデータ< - outVar()$ mydataを試しましたか? – MJH

+0

は、outVar()$ mydataを追加しようとしましたが、同じエラーが発生しています($:$演算子のエラーはアトミックベクターでは無効です)。 – jackg1787

+0

私が使用したデータで作業するコードを取得できませんでした。私はしかし、別のエラーが発生し続けた。私は以下の答えで観測イベントを取り出しました。あなたはそれなしであなたが望むことをすることができるはずです。 – MJH

答えて

1

データはありませんでしたが、私はこれを構築するためにワイン品質データを使用しました。 https://archive.ics.uci.edu/ml/datasets/Wine+Quality

希望これは

library(shiny) 
library(tidyverse) 
library(ggplot2) 


datafile1 <- read_delim(file = "Data/winequality-red.csv", delim = ";") 
datafile2 <- read_delim(file = "Data/winequality-white.csv", delim = ";") 
# datafiles<-c("Data/try2.txt","Data/Poland.txt","Data/Romania.txt","Data/Hungary.txt","Data/KHR.txt") 

datafiles <- list(datafile1, datafile2) 

ui <- fluidPage(
    selectInput('dataset', 'Choose Dataset', choices = c("Red" = "1", "White" = "2")), 
    selectInput('column', 'Choose column', choices = c("2" = "2", "3" = "3")), 
    plotOutput('graph') 
) 

server = function(input, output, session){ 

    outVar <- reactive({ 
    temp <- datafiles[[as.numeric(input$dataset)]] 
    temp <- temp[,c(1, as.numeric(input$column))] 
    }) 

    output$graph <- renderPlot({ 
    plot(outVar()) 
    }) 
} 


shinyApp(ui=ui, server=server) 
+0

こんにちは、おかげさしです!最初のtemp < - as.data.frame()行では、as.numericは必要ですか?最初の列は日付の列ですので、エラー '必要有限のxlim値'が表示されます。 as.numericを削除すると、 '未定義の列が選択されました'が表示されます。 – jackg1787

+0

as.numericが必要になります。入力から選択すると、選択肢が数値ではなく文字として定義されるためです。数値を使用して列を選択できるように、数値に変更する必要があります。 最初の一時行は、データセットのリストからのみデータセットを選択しています。 2番目の一時行には1があり、選択された列は(私は列1が日付列であると仮定していました)。つまり、最初に適切なデータを取り、それをデータフレームにしてから、ドロップダウンリストから選択した1列目と1列目を選択します。 – MJH

+0

あなたのデータはどのように構造化されているのでしょうか?あなたの質問に基づいて、私は、各データセットには、列1が日付列、列2、...、nが日付に対してプロットする値を持つと仮定しました。私は上記のas.data.frameを含める必要はないことに気づいたので、これを取り上げました。 – MJH

関連する問題