私が抱えている問題は、Shiny で GUI を自動的に生成できないことです。アイデアは、ファイルがいくつあるかを確認し、各ファイルに対して一連の画像 + ボタンを生成することです。この問題の解決策は、R での任意の GUI 生成の解決策であると私は信じています。
各ボタンと画像のコードを記述して静的にこれを行うことはできますが、それを for ループに入れたり、server.R で画像をレンダリングして HTML として UI に渡したりすることはできません。 R. 以下に説明します。
生成したいコードは次のとおりです。
actionButton("sug1",icon=imageOutput("sug1",width="100px",height="100px"),label="First")
これにより、100x100 のクリック可能な画像が得られます。
私は次のことを試しました:
1) ui.R 内の for ループで囲み、ID("sug1") とラベルを、最後の番号が各ループでインクリメントされる変数にします。
2) 結果を蓄積し、server.R で HTML() 関数を使用して後で ui.R に出力する
output$generateImages <- renderUI({
(...)
for(...){
(...)
w <- paste(w, actionButton(paste("oc",which(dir==folders)),label=dir))
}
HTML(w)
})
そして、表示したい場所の ui.R で:
htmlOutput("generateImages")
3) HTMLoutput または UIOutput を使用すると役立つはずだと推測しましたが、コードが生成する HTML 出力を考えると (右クリック/ページ ソースの表示に見られるように)、次のようになります。
<button id="sug1" type="button" class="btn action-button">
<div id="sug1" class="shiny-image-output" style="width: 100px ; height: 100px"></div>
First
</button>
画像への参照を挿入する方法と場所がわからなかったため、これを生成する方法を理解できませんでした。
助けていただければ幸いです。