2017-03-24 8 views
0

내가 C 드라이브의 데이터를 먼저 확인하기 위해 반짝이는 서버 스크립트를 작성하고 있습니다. 그곳에 있으면 다른 데이터 처리를 수행하는 것이 좋습니다. 다음 반복을 위해 저장하십시오. 그리고 데이터의 이름은Shiny : 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 함수를 결정하기 위해 붙여 넣기를 사용해야한다고 생각합니다. 입력 $ var.csv라는 파일을 찾습니다. 'file.exists (paste0 (input $ var, ".csv"))'와 같이하면,'read.csv (paste0 (input $ var, ".csv"))'와 동일하거나 다른 것에 관한 질문입니까? – timfaber

+0

고마워요. @timfaber .. 정말 도움이됩니다. –

답변

1

사용 paste0입니다
은 다음 차트를 만들 정말 빠른 것입니다 입력 $ var에에 따라 달라집니다 팀파블라가 말했듯이. 파일을 처리하는 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