저는 R-Shiny를 처음 사용하고 제 질문은 매우 간단 할 수 있습니다. 몇 시간 동안 사고하고 검색 한 후에도 문제를 해결할 수 없었습니다. 문제는 다음과 같습니다.R의 입력 데이터 세트 다루기 Shiny
1) 내 앱에서 사용자에게 데이터 세트를 업로드하도록 요청합니다.
2) 그런 다음 서버 파일에서 데이터 세트를 읽고 일부 분석을 수행 한 결과를 사용자 인터페이스에 다시보고합니다.
3) 내 사용자 인터페이스에는 4 가지 다른 출력이 있습니다.
4) 각 출력의 "렌더링"기능에서 데이터 세트를 읽었습니다. 문제 : 이렇게함으로써 각 기능의 범위에서 데이터가 로컬로 정의되므로 각 출력에 대해 다시 읽어야합니다.
5) 이것은 매우 효율적입니다. 대안이 있습니까? 반응성?
6) 아래는 내 server.R을 쓴 방법을 보여주는 샘플 코드는 다음과 같습니다
shinyServer(function(input, output) {
# Interactive UI's:
# %Completion
output$myPlot1 <- renderPlot({
inFile <- input$file
if (is.null(inFile)) return(NULL)
data <- read.csv(inFile$datapath, header = TRUE)
# I use the data and generate a plot here
})
output$myPlot2 <- renderPlot({
inFile <- input$file
if (is.null(inFile)) return(NULL)
data <- read.csv(inFile$datapath, header = TRUE)
# I use the data and generate a plot here
})
})
어떻게 한 번만 입력 데이터를 얻을 내 출력 기능의 데이터를 사용할 수 있습니까? 당신은 reactive
함수에서 파일의 데이터를 호출 할 수 있습니다
안녕 @jdharrison, 정말 고마워. 나는 실제로 그것을 시도했다. 그러나 "유형 '클로저'의 객체는 서브 세트 가능하지 않다"는 오류를 얻는다. – Sam
나중에 렌더링 함수에서 "myData"를 참조하고 $ 연산자를 통해 일부 데이터 열을 사용합니다. myData $ col1과 같은 열을 사용할 때마다 위의 오류가 발생합니다. – Sam
나를 위해 잘 작동합니다. 이 칼럼은'myData() $ col1'으로 접근 할 수 있습니다 만, 일반적으로 먼저 반응 함수에서'mydata <- myData()'와 같은 일을합니다. – jdharrison