回答編集履歴

4

2023/01/12 02:07

投稿

cuttlefish44
cuttlefish44

スコア85

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稿を追加

2023/01/12 02:04

投稿

cuttlefish44
cuttlefish44

スコア85

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

コメント追記

2023/01/11 04:33

投稿

cuttlefish44
cuttlefish44

スコア85

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

2023/01/11 04:20

投稿

cuttlefish44
cuttlefish44

スコア85

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値の選択に伴う小さめの処理)、