2016-06-22 3 views
0

저는 R 프로그래밍의 초보자이며 웹 응용 프로그램을 만드는 중입니다.R 프로그래밍에서 문자열 입력 값을 모두 textinput하고 인쇄하십시오.

sidebarLayout(sidebarPanel(textInput('text1', 'County', value = "", width = '250px', placeholder = NULL), submitButton("Update View")), mainPanel(textOutput('cd'))) 
난의 TextInput에 입력 된 문자열과 일치하는 테이블의 값을 표시하고자

: I은 ​​텍스트 입력 (UI)를 만들었다. 예 : alamedatextinput에 입력하고 제출 옵션을 클릭하면 alameda에 해당하는 모든 값이 기본 패널에 인쇄됩니다.
서버 코드는 다음과 같습니다

server <- shinyServer(function(input, output) { 
originaldata <- read.csv(file="Patient_Discharge.csv", header = TRUE, sep = ",") 

output$content = renderDataTable({originaldata}) 

dev <- reactive({ 
for (var in originaldata$County_Name) { 
    if(input$text1 == var) print(var) else print("left") 
} 
}) 

output$cd <- renderText({paste(dev)}) 
}) 

나는 다음과 같은 오류가 점점 오전 :

+0

오류의 직접적인 원인은'paste (dev())'를 사용해야하는 마지막 줄입니다. 'dev()'함수와 같은 반응 값을 사용하십시오. –

답변

0

"타입의 '문자'의 벡터에 유형 '폐쇄'를 강요 할 수 없다" 주요 문제는 반응 변수 인 dev에 함수 'paste'를 적용하려고한다는 것입니다. 반응 변수는 값을 원할 경우 함수로 처리해야합니다. 즉 : paste (dev())는 오류를 해결합니다. 그러나 개발자의 반응식이 어떤 것을 반환하는지 확인해야합니다. 현재 for-loop는 반응 변수에 의해 반환되는 것입니다. 만약 당신의 코드를 변환한다면 :

result = c() 
for (var in originaldata$County_Name) { 
    result <- c(result, ifelse(input$text1 == var, var, "left")) 
} 
return(result)