저는 이틀 동안이 문제에 갇혀 있었고, 저보다 훨씬 똑똑한 사람들의 도움을 받고 싶습니다. "shinyTable"(https://github.com/trestletech/shinyTable)이라는 패키지를 사용하고 있으며, 그것을 조작하는 데 어려움을 겪고 있습니다. ? 이제렌더링 기능을 사용하여 eventReactive 사용
library(shinythemes)
library(shiny)
library(shinyTable)
ui <- fluidPage(theme = shinytheme("slate"),titlePanel(HTML("<h1> <font face=\"Rockwell Extra Bold\" color=\"#b42000\"><b><b>R/Econ</b></b></font> <font face=\"Lucida Calligraphy\" colsor=\"white\" >Model</font></h1>")),
sidebarLayout(
sidebarPanel(
numericInput("rows", label = h3("Number of Rows"), value = 20),
numericInput("cols", label = h3("Number of Columns"), value = 2)
),
mainPanel(
htable("tbl")
)
)
)
server <- function(input, output)
{
output$tbl <- renderHtable({
if (is.null(input$tbl)){
# Seed the element with some data initially
tbl <- data.frame(list(num1=1:input$rows,
num2=(1:input$rows)*20,
letter=LETTERS[1:(input$rows)]))
cachedTbl <<- tbl
print(tbl)
return(tbl)
} else{
cachedTbl <<- input$tbl
print(input$tbl)
return(input$tbl)
}
})
}
shinyApp(ui = ui, server = server)
나는 : 기본적으로,이 표는 입력 $ 행 기반으로 크기를 변경 내가 할 수있는 방법 나는 "제출"버튼을 클릭하면 여기에 버튼을 "제출"오 승/작업 코드는 입력 $ 행이나 입력 $ cols가 변경되면 테이블의 크기가 동적으로 변경되기를 원합니다. 나는이 일을하는 방법을 알아낼 수 없다. 나는 다음을 시도했다 :
myx<-eventReactive (input$submit, {
output$tbl <- renderHtable({
if (is.null(input$tbl)){
tbl <- data.frame(list(num1=1:input$rows,
num2=(1:input$rows)*20,
letter=LETTERS[1:(input$rows)]))
cachedTbl <<- tbl
print(tbl)
return(tbl)
} else{
cachedTbl <<- input$tbl
print(input$tbl)
return(input$tbl)
}
})
})
그러나 이것은 작동하지 않는다. 내 생각 과정은 제출 버튼을 클릭하면 테이블을 다시 작성한다는 것입니다. 입력 $ 행을 사용하여 테이블의 크기를 변경하고 싶지만 크기를 변경하거나 제출 버튼을 클릭해도 아무런 변화가 없습니다. 실제로 eventReactive를 추가하면 테이블에 값이없는 곳에 테이블이 변경되고 값을 입력 할 수 없습니다. 나는 솔직히 잃어 버렸다. 나는 이것과 같은 다른 변형을 시도했다 :
myx<-eventReactive (input$submit, {
if (is.null(input$tbl)){
tbl <- data.frame(list(num1=1:input$rows,
num2=(1:input$rows)*20,
letter=LETTERS[1:(input$rows)]))
cachedTbl <<- tbl
print(tbl)
return(tbl)
} else{
cachedTbl <<- input$tbl
print(input$tbl)
}
})
#-------
# myx2<-eventReactive (cachedTbl, {
# })
output$tbl <- renderHtable({
tbl<<-myx()
print(data.frame(tbl))#Tried and failed using myx()
return(data.frame(tbl))
})
이 일을하면서 나는 테이블을 반응 적으로 만든 다음 그것을 renderHTable에 전달할 수 있다고 생각했다. 이러한 모든 시도는 내가 사물을 반응 적으로 만들려고한다는 사실을 공유합니다.
"제출"버튼을 클릭하면이 테이블의 크기를 입력 $ 행에 따라 변경할 수 있습니까? 도와주세요!
shandsTable을 발전시킨 rhandsontable https://github.com/jrowen/rhandsontable을 사용해야합니다. 횡포가 크란에 있고 유지됩니다. shinyTable이 아닙니다. – Enzo
'eventReactive()'대신'observeEvent()'를 사용 해보고'input $ rows' 코드가'$ row'를 의미하므로'input $ rows'를 정의한 곳을 찾을 수 없습니다. – Phi