[問題] Shiny reactive value表單(已解決但不懂)
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
使用者(已經有用R 做過不少作品)
[問題敘述]:
我在自己的 Shiny server 上寫一個能讀 MySQL 資料的網頁
現在想在其中一個 tab 加入操作資料庫的功能。
例如說,我可以選擇 table 中的某一列,
然後下面各個變數就會用預設值的形式叫出那筆資料,
我可以直接更改、然後送出修訂。
目前我的 UI 是:
output$KeyIn = renderUI({
fluidPage(
numericInput("RowChoice", "選擇第幾筆資料", value = 1,
min = 1, max = dim(Data)[1], step = 1),
h2("以下是編輯區")
fluidRow(
column(width = 3,
textInput("Var", "變數",
value = Data$Var[input$RowChoice]))
),
fluidRow(
column(width = 12, offset = 6,
submitButton("送出修訂"))
)
)
})
Data$Var[isolate(input$RowChoice)]
isolate(Data$Var[input$RowChoice]) 都不合法
我試過另外寫一個 reactive:
VarReac = reactive({as.numeric(input$RowChoice)})
或是用一個 function:
VarFunc = function(input) { return(input$RowChoice) }
然後用 VarFunc() 呼叫都不行。
我希望這個網站可以盡可能地用 R 來完成,
所以想徵詢大家,可以怎麼在 R 實現這件事
傍晚補充 =>
我寫出一個合法的版本了但我看不太懂:
textInput("Var", "變數",
value = reactive(function() {
if (is.null(input$RowChoice)) {
return("NULL")
} else {
return(isolate({
Data$Var[input$RowChoice])
}))
}
})())
我不太懂為什麼 reactive 一定要內含一個 function、再去 no input "()"
而且為什麼一定要考慮 is.null 的狀況?
我直接把 isolate({Data$Var[input$RowChoice]}) 寫在 value = 之後卻又不行?
[程式範例]:
如上
[環境敘述]:
R version 3.1.2 (2014-10-31)
Platform: x86_64-redhat-linux-gnu (64-bit)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RMySQL_0.10.2 DBI_0.3.1 shiny_0.11.1
[關鍵字]:
Shiny, form, reactive value
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.121.113
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1426828595.A.49B.html
※ 編輯: skylikewater (140.112.121.113), 03/20/2015 16:37:26
※ 編輯: skylikewater (140.112.121.113), 03/20/2015 16:37:34
→
03/22 19:56, , 1F
03/22 19:56, 1F
→
03/22 19:59, , 2F
03/22 19:59, 2F
→
03/22 19:59, , 3F
03/22 19:59, 3F
→
03/22 19:59, , 4F
03/22 19:59, 4F
→
03/22 20:00, , 5F
03/22 20:00, 5F
→
03/22 20:00, , 6F
03/22 20:00, 6F
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章