2017-03-24 16 views
0

私は、最初にCドライブのデータをチェックするためにreact()を使用したいという光沢のあるサーバースクリプトを作成しています。次の繰り返しのために保存します。 とデータの名前を入力する$ VARShiny:reactive()check on read.csv

に依存しているので、次のグラフに
を作成するために、本当に速いだろうその次の時間は、私の大きな問題

library(shiny) 
library(datasets) 
library(ggplot2) 
mt=mtcars 
shinyServer(function(input, output) { 
data1 =reactive({ 
if(file.exists("input$var.csv") 
    {data=read.csv(input$var.csv)}) 
    else{  
    data=mt[mt$cyl==input$var,] 
    write.csv(data,file="c:\\input$var.csv") 
    } 
    }) 
    output$Plot1 <- renderPlot({ 
    data2=data1() 
    ggplot(data2$d,aes(x=gear,y=wt))+geom_boxplot() }) 

}) 
+1

私はあなたがfile.exists関数を決定するためにpasteを使う必要があると思うので、今度は$ var.csvというファイルを探します。 'file.exists(paste $(input $ var、" .csv "))'と同じです。 'read.csv(paste $(input $ var、" .csv "))'と同じですか、それとも何か別の質問ですか? – timfaber

+0

おかげさまで@timfaber ..それは本当に役に立ちます –

答えて

1

利用paste0の単なる実行している例です。タイムファーバーが言ったように。ファイルを扱うR関数では、完全な文字列を与える必要があります。paste0は、 "name_with_what_is_in_input $ var.csv"のような文字列を与えることができます。

ibrary(shiny) 
library(datasets) 
library(ggplot2) 
mt=mtcars 
shinyServer(function(input, output) { 
data1 =reactive({ 
if(file.exists(paste0(input$var,".csv")) 
    {data=read.csv(paste0(input$var,".csv"))}) 
    else{  
    data=mt[mt$cyl==input$var,] 
    write.csv(data,file=paste0("c:\\",input$var,".csv")) 
    } 
    }) 
    output$Plot1 <- renderPlot({ 
    data2=data1() 
    ggplot(data2$d,aes(x=gear,y=wt))+geom_boxplot() }) 

}) 
+0

ありがとうそれは私に良いアイデアを与えました –

+0

あなたは歓迎:)あなたは光沢を持つ多くのことをすることができます。審美的には、shinyjsとshinydashboardパッケージを見ることができます。 – Smich7