shinydashboard에서 동적 플롯 기반 selectorInput을 생성하고 싶지만 플롯을 생성하려고하면 오류가 발생합니다 :
First argument,
data
, 데이터 프레임 또는 공유 데이터 여야합니다.
내 코드의 일부는 데이터를 부분 집합 화하고 플롯 입력으로 사용하려고 할 때 서버 부분입니다.
data_sub = reactive({
data_sub_temp = df[df$market == input$market_selector,]
return(data_sub_temp)
})
output$market_plot <- renderPlotly({
plot_ly(
data = data_sub,
x = ~ created,
y = ~ pax,
group_by = ~ type,
color = ~ type,
type = "scatter",
mode = "lines+markers",
hoverinfo = 'text',
text = ~ paste('Year:', created,
'</br> </br> Clients: ', pax)
)
})
UI 및 서버 코드 부분 전에 데이터 집합이로드되고 사전 처리됩니다. 이 코드가 작동하기 전에 UI 및 서버 부분 전에 하위 집합 데이터 세트를 사용하면 data_sub 부분이 추가되면 작동하지 않습니다. 어떠한 제안? 감사합니다
- 답변 # 1
- 답변 # 2
반응은 반응 중에 재실행되는 것을 제한하는 데 사용됩니다. 와이즈 비즈 식이
reactive({})
와 유사한 반응을 일으킴 표현.즉,
당신이input$...
를 당기는 예제에서data_sub
에서renderPlotly()
일 때 expression이 renderPlotly를 실행하지 못하게합니다. 또는df$market
그input$market_selector
를 반짝이지 않으면 변경 위에서 한 것처럼 반응해야합니다.data_sub
를 분리하는 데 약간의 포인트가 있습니다 당신의data_sub
에서 다른renderPlotly()
가 아닌 한 표현 식이input$...
의 원인이었습니다 다시 그리기 위해. 더 잘 이해하려면 반응성 튜토리얼을 참조하십시오.renderPlotly()
를 유지하려는 경우반응 형은 플롯의 대괄호 표기법을 사용하여 호출해야합니다. 즉,
data_sub
data = data_sub()
를 사용할 때 R의 대입 연산자를 파악하는 것이 유용 할 수도 있습니다. 연산자가 잘못되었습니다. 코드는 계속 실행되지만=
를 사용하는 것이 좋습니다<-
를위한 연산자 . R에서 대입 연산자의 차이점을 참조하십시오.최종 코드는 다음과 같아야합니다.
서버
data_sub
- 답변 # 3
data_sub <- reactive({df[df$market == input$market_selector,]}) output$market_plot <- renderPlotly({ plot_ly( data = data_sub(), x = ~ created, y = ~ pax, group_by = ~ type, color = ~ type, type = "scatter", mode = "lines+markers", hoverinfo = 'text', text = ~ paste('Year:', created, '</br> </br> Clients: ', pax) ) })
를 사용해보십시오data = data_sub()
대신data = data_sub
output$market_plot <- renderPlotly({ plot_ly( data = data_sub(), x = ~ created, y = ~ pax, group_by = ~ type, color = ~ type, type = "scatter", mode = "lines+markers", hoverinfo = 'text', text = ~ paste('Year:', created, '</br> </br> Clients: ', pax) ) })
관련 자료
- ggplot2 - R의 이진 연산에 대한 비 숫자 인수 오류, 설명 필요
- r - fun (x [[i]],…) 오류 - 찌르는 인수의 잘못된 '유형'(문자)
- typescript - referenceupdate 실패 - 첫 번째 인수에 속성의 함수가 포함되어 있습니까?
- c - 오류 수정 방법 - 호환되지 않는 포인터 유형에서 'proc_create'의 인수 4 전달
- r - 데이터 프레임을 통한 For 루프, dplyr 사용시 오류 발생
- c++ - `dlopen` 사용시 "정의되지 않은 기호"에 대한 공유 라이브러리 오류
- r - ggplot을 사용하여 넓은 형식의 데이터 프레임에 대한 막대 차트에 오류 막대 플로팅
- python - '순서없이 인수를 구문 분석 할 수 없음'인수에 대한 오류를 해결하려면 어떻게해야합니까?
- javascript - 첫 번째 렌더링에서 null 오류의 속성 '값'을 읽을 수 없습니다
- function - python def 메소드는 첫 번째 인수로 "self"를 가져야합니다
- json - 동일한 인수로 Multiple 함수를 실행하지만 R에서 plumber를 사용하여 첫 번째 함수를 건너 뛰고 두 번째 함수를 인쇄합니다
- python - 오류 수정을위한 첫 번째 코드 설명?
- c - Linux 커널이 IRQ_HANDLED를 반환하는 공유 IRQ의 첫 번째 처리기에서 멈추지 않는 이유는 무엇입니까?
- matrix - 아르 자형 - 반짝이는 "이항 연산자에 대한 숫자가 아닌 인수"오류
- python - 파일의 첫 줄을 건너 뛰는 오류
- dataframe - 문자열 인 첫 번째 열을 기반으로 R의 데이터 프레임 집계
- dictionary - C ++의 맵에서 첫 번째와 두 번째 쌍에 액세스 할 때 컴파일러 오류가 발생했습니다
- linux - 정적 라이브러리에 연결된 공유 라이브러리에서 C ++ 연결 오류를 해결하는 방법
- google cloud platform - 클라이언트가 Firebase 인증 UI에서 잘못된 인수 오류를 지정했습니다
- node.js - 인수의 오류는 반응 요소 여야하지만 정의되지 않은 상태로 전달되었습니다
문제는
dataframe
부분은reactive
입니다 플롯은 아닙니다. 당신은eventHandler
를 사용해보십시오 대신에. 이 경우actionButton
를 추가해야합니다 UI에서 (아마도sidebarPanel
에서) ) 및eventHandler
추가reactive
없이 서버에서 부품. 아래 코드입니다.ui
서버
이것이 효과가 있는지 알려주십시오.