다운로드하지 않고 .csv에 데이터를 쓸 수 있습니까? downloadButton과 downloadHandler가 있지만 그들은 데이터를 쓰고 다운로드합니다.
첫 번째가 가능하다면 csv에 데이터를 쓰고 덮어 쓸 수 있습니까? 예를 들어, 값이있는 .csv 파일이 있는데 해당 csv의 값을 덮어 쓰는 것만으로 변경하고 싶습니다.
아이디어는 시작시로드 된 .csv에 일부 값을 저장하고 싶습니다. 하지만 사용자가 일부를 변경하고 다음 시간을 위해 저장하기를 원하므로 변경해야합니다. 그리고 다음에 변경된 값이로드됩니다.
생각
문제는 사용자가 일부 옵션을 선택할 수 있도록 허용하고 반짝이는 앱은 다음 응용 프로그램 시작시 해당 옵션을 기억해야한다는 것입니다. 첫째, 내 생각은 앱 시작시 빈 변수를 만드는 것이 었습니다 savedItems<-NULL
. 앱이 호스팅 될 때마다 다음과 같은 항목을 추가합니다 savedItems<<-c(savedItems,'a1','a3','a5')
. 그러나 때때로 내가 호스팅 할 서버가 다시 시작되므로 savedItems
빈 벡터로 다시 초기화됩니다. 그래서 저는 제 아이디어를 업데이트하고 값을 벡터가 아닌 파일에 저장하기로 결정했습니다.
업데이트 된 아이디어 및 솔루션
먼저 upload.csv
데이터를 저장하려는 빈 .csv 파일 (예 :)을 초기화했습니다 . 나는 (호스트가 아닌) 응용 프로그램을 시작할 때 마다이 파일을 읽고 싶으므로 먼저 파일에 열 벡터 만 저장하는 .csv를 읽습니다.
shinyServer(function(input, output, session) { uselessRead <- read.table("upload.csv",header=FALSE) useless <<- as.vector(uselessRead[,1]) ...
그런 다음을 사용하여 selectInput
일부 항목을 선택하고 벡터에 추가합니다 useless
. 내가 클릭 한 후 다음이 작업을 수행 actionButton("addUseless",...)
: observe({ if (input$addUseless == 0) return () } isolate({ useless<<-input$uselessItems # from selectInput("uselessItems",...) }) })
이 후, 내 벡터가 선택한 새 값으로 (채워진 경우)을 덮어 씁니다. 따라서 이러한 값이 내 upload.csv
. 그래서 클릭 후 이렇게합니다 actionButton("upload",...)
. observe({ if (input$upload == 0) { return () } isolate ({ write.table(useless,"upload.csv", col.names=FALSE,row.names=FALSE) }) })
이것은 useless
벡터 에 할당 된 모든 것을 쓰고 (그리고 내부에 있던 모든 것을 덮어 씁니다) .
다음에 시작할 때 내 앱은 먼저 upload.csv
어떤 값을 선택해야하는 응용 프로그램을 읽으며 사용자는 매번 그렇게 할 필요가 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다