2013-11-25 1 views
8

빛나는 응용 프로그램을 가지고 있지만 입력 데이터가 반응하도록 변경했습니다. 기본 데이터가 업데이트되면 업데이트됩니다. 데이터를 읽었을 때 제대로 작동했지만 데이터가 반응 적이기 때문에 파일 중 하나에서 문제가 발생했습니다 (다른 두 개는 예상대로 작동 함). 이 파일은 데이터베이스에서 내 보낸 .csv 파일이며 사용하기 전에 약간의 정리 작업을하고 싶습니다. 일부 이름을 변경하고 일부 데이터를 형식화합니다. 관련 부분은 다음과 같습니다이 잘 작동하지만Reiny data.frames in Shiny

server.r 

W.Data<-reactiveFileReader(2000,session, 
      "WaterData.csv",read.csv,header=TRUE,as.is=TRUE) 

그 다음 두 줄이 작동하지 않습니다

names(W.Data())[names(W.Data())=="Visit_Start_Date"]<-"Visit.Date" 
W.Data()$Visit.Date<-as.Date(W.Data()$Visit.Date,"%m/%d/%Y") 

를 내가이 프로그램을 실행할 때 나는

Error in W.Data()$VisitDate <- as.Date(W.Data()$VisitDate, "%m/%d/%Y"): 
invalid (NULL) left side of assignment 

와 유사한위한 얻을 다른 라인. 여기서 무슨 일이 일어나고있는거야? 과 같은 것들을 reactiveFileInput에서 읽을 수 있습니까? 공백이 아닌 밑줄이 있도록 밑에있는 .csv 파일의 이름을 변경해 보았습니다. names()as.Date()reactive() 표현에 넣으려고했으나 차이가 없었습니다.

감사

답변

13

나는 주로 내가 멍청이되고 있다는 말을 내 자신의 질문에 응답하고있다. reactiveFileReader()을 사용하여 파일을 읽으면 "반응 소스"가됩니다. 반짝이는 튜토리얼 here에서 설명한 것처럼 반응성 소스는 외부에서 수정됩니다. 사용자가 새 값을 입력하거나이 경우 파일을 업데이트합니다. server.r 내부에서 수정할 수 없습니다.

제 경우에는 read.csv()col.namescolClasses 옵션을 사용하여 가능한 최상의 형식으로 원본 데이터를 가져 왔습니다. 또한 매우 유용한 setAs 함수를 사용하여 read.csv에서 날짜 형식을 이해하는 방법을 얻었습니다 (여기에서 설명 됨) : Specify date format for colClasses argument ....

이 거기에서, 나는 데이터로부터 생성하는 데 필요한 새로운 열이 같은 반응 함수를 사용하여 별도의 개체로 수행해야했다 :

NewThing<-reactive({ function(MyReacitveCSVdata()$colname) }) 

차례로 다음 NewThing()을 당신은 그러나 사용할 수 있습니다 소원. 이것은 그렇지 않은 숫자 열의 문자 값과 같은 문제를 해결할 수있는 방법입니다. colClasses="numeric"을 사용하여 가져 오려고하면 오류가 발생하고 read.csv()은 실패합니다. 대신 먼저 열을 "문자"로 가져온 다음 reactive({})as.numeric()과 함께 사용하여 새 개체에 할당하십시오. reactiveFileReader()을 사용하여 가져온 data.frame의 새 열은 새 개체가 아니며 대신 data.frame에 종속 된 새 개체 여야합니다.

+0

@ John Paul. 이 게시물에있는 것과 동일한 문제가있는 것으로 보입니다. 그러나 귀하의 통찰력을 바탕으로 문제를 해결할 수는 없습니다. 어떻게하면 내 문제를 해결할 수있는 모든 아이디어. 질문의 링크 아래에. 감사. http://stackoverflow.com/questions/37736782/add-new-variable-column-in-the-fly-to-a-reactive-dataframe-in-shiny?noredirect=1#comment63045945_37736782 – SimonB

관련 문제