2017-04-17 4 views
-1

Rstudio에서 Shiny 패키지로 양식을 프로그래밍 중입니다. 하지만 내 데이터 프레임의 정보를 사용하여 자동 완성 양식을 만들고 싶습니다. 나는 작은 예를 들어 줄거야.데이터 프레임 정보를 사용하여 빛나는 R 폼의 필드를 자동으로 채우는 방법은 무엇입니까?

3 개의 열이있는 데이터 프레임이 있다고 가정 해 봅시다. 첫 번째 것은 내 학생들의 이름을 포함하고 두 번째는 그의 나이를 포함하고 세 번째는 지난 시험의 마지막 학점을 포함합니다. 정확히 세 개의 선택 입력 필드가있는 양식을 작성했습니다. 주먹 하나는 이름을 선택하고, 두 번째는 나이를 선택하는 입력 번호이며, 마지막은 자신의 마지막 학년을 선택합니다. 첫 번째 필드에서 학생 이름을 선택하면 다른 필드가 정보를 자동 완성합니다.

감사합니다.

의 I 사용하고 데이터 세트 다음과 같습니다 :

답변

0

나는 이것이 당신이 찾고있는 것 같다. csv 파일에서 같은 데이터를로드했습니다.

autoFillDF <- structure(list(Name = c("ABC", "XYZ", "PQR"), Age = c(30L, 24L, 
27L), Grade = c("A", "B", "D")), .Names = c("Name", "Age", "Grade" 
), class = "data.frame", row.names = c(NA, -3L)) 

ui.R 코드

shinyUI(fluidPage(
    titlePanel("Auto Fill"), 
    sidebarPanel(
     selectizeInput("p1", choices = autoFillDF$Name, selected = NULL, label = 'Name'), 
     selectizeInput("p2", choices = NULL, label = 'Age'), 
     selectizeInput("p3", choices = NULL, label = 'Grade') 

    ), 
    mainPanel(
     DT::dataTableOutput('table') 
    ) 
) 
) 

server.R 코드 완벽한 답변을

autoFillDF <- read.csv('..../test.csv', stringsAsFactors = FALSE) 

shinyServer(function(input, output, session) { 

    updateApp <- reactive({ 
    data <- autoFillDF 
    data <- data[data$Name %in% input$p1,] 
    updateSelectizeInput(session, 'p2', choices = data$Age, selected = data$Age, server = TRUE) 
    updateSelectizeInput(session, 'p3', choices = data$Grade, selected = data$Grade, server = TRUE) 

    data 
    }) 

    output$table <- DT::renderDataTable(
    DT::datatable(updateApp()) 
) 

}) 
+0

감사합니다. 정말 문제를 해결합니다. –

+0

@ElvinMitchellToro,이 답변으로 문제를 해결할 수 있다면 투표 화살표 아래의 체크 표시를 사용하여 [승인 된 것으로 표시] (https://stackoverflow.com/help/someone-answers)를 고려하십시오. – krish