回答編集履歴
4
test
CHANGED
@@ -47,8 +47,9 @@
|
|
47
47
|
# 二稿
|
48
48
|
理解が不十分で申し訳ありません。
|
49
49
|
> ユーザーが submit で送信する selected value を 得たい
|
50
|
-
ということでしたら、アクションボタンをkeyにしたeventReactive
|
50
|
+
ということでしたら、アクションボタンをkeyにしたeventReactiveで、
|
51
|
-
`input$select_country` を
|
51
|
+
`input$select_country` を用いて変数 (関数) を定義し、
|
52
|
+
各種renderxx系でoutputに突っ込むだけでいける気がします。
|
52
53
|
(条件がよくわからなかったため、以下例ではchoiceは動的にはしていません)
|
53
54
|
|
54
55
|
### ui.R
|
3
コメントを受けて第2稿を追加
test
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# 初稿
|
1
2
|
(遊び程度でしかshinyを触っていないのでパフォーマンス面などは補償の限りではありません)
|
2
3
|
`selectInput`の更新は`updateSelectInput`で実行する必要があります。
|
3
4
|
以下のように、Actionボタンをトリガーにした `observeEvent` 内で、
|
@@ -43,3 +44,52 @@
|
|
43
44
|
}
|
44
45
|
```
|
45
46
|
|
47
|
+
# 二稿
|
48
|
+
理解が不十分で申し訳ありません。
|
49
|
+
> ユーザーが submit で送信する selected value を 得たい
|
50
|
+
ということでしたら、アクションボタンをkeyにしたeventReactive中に
|
51
|
+
`input$select_country` を記述するだけでいける気がします。
|
52
|
+
(条件がよくわからなかったため、以下例ではchoiceは動的にはしていません)
|
53
|
+
|
54
|
+
### ui.R
|
55
|
+
```
|
56
|
+
library(shiny)
|
57
|
+
|
58
|
+
fluidPage(
|
59
|
+
|
60
|
+
titlePanel("Example"),
|
61
|
+
|
62
|
+
sidebarLayout(
|
63
|
+
sidebarPanel(
|
64
|
+
uiOutput("select_country"),
|
65
|
+
actionButton("submit", "Submit")
|
66
|
+
),
|
67
|
+
mainPanel(
|
68
|
+
textOutput("output_text")
|
69
|
+
)
|
70
|
+
)
|
71
|
+
)
|
72
|
+
```
|
73
|
+
|
74
|
+
### server.R
|
75
|
+
```
|
76
|
+
library(shiny)
|
77
|
+
|
78
|
+
function(input, output, session) {
|
79
|
+
|
80
|
+
output$select_country <- renderUI({
|
81
|
+
#if (is.null(Data()$df)) {return()}
|
82
|
+
#else {
|
83
|
+
countryS <- unique(iris$Species)
|
84
|
+
#str(countryS)
|
85
|
+
selectInput("select_country", label = "Country", choices = countryS)
|
86
|
+
#}
|
87
|
+
})
|
88
|
+
|
89
|
+
Data <- eventReactive(input$submit, {
|
90
|
+
return(paste0(input$select_country, " is selected."))
|
91
|
+
})
|
92
|
+
output$output_text <- renderText({Data()})
|
93
|
+
}
|
94
|
+
```
|
95
|
+
|
2
コメント追記
test
CHANGED
@@ -34,11 +34,11 @@
|
|
34
34
|
function(input, output, session) {
|
35
35
|
|
36
36
|
observeEvent(input$submit, {
|
37
|
-
out_var <- sort(sample(100, 5))
|
37
|
+
out_var <- sort(sample(100, 5)) # アクションボタン連動で更新
|
38
38
|
output$output_text <- renderText({
|
39
39
|
paste0("選択肢: ", paste(out_var, collapse = ","), "選択: ", input$runif_value)
|
40
|
-
})
|
40
|
+
}) # selectInput連動で更新
|
41
|
-
updateSelectInput(session, "runif_value", choices = out_var)
|
41
|
+
updateSelectInput(session, "runif_value", choices = out_var) # out_var連動, つまりアクションボタン連動で更新
|
42
42
|
})
|
43
43
|
}
|
44
44
|
```
|
1
test
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
遊び程度でしかshinyを触っていないのでパフォーマンス面などで
|
1
|
+
(遊び程度でしかshinyを触っていないのでパフォーマンス面などは補償の限りではありません)
|
2
|
+
`selectInput`の更新は`updateSelectInput`で実行する必要があります。
|
2
3
|
以下のように、Actionボタンをトリガーにした `observeEvent` 内で、
|
3
4
|
各種変数を定義 (selectInputの変更を伴う大きめの処理)、
|
4
5
|
その変数やinput値を変数にrender関数を記述 (input値の選択に伴う小さめの処理)、
|