これは質問リアクティブ出力値を関数で使用するベクトルに格納する方法はありますか?
How to isolate the output of a reactive (function) and save to a data.frame?
の拡張では、基本的に私は、予め決められており、付加価値のベクトルに基づいて、テーブルを構築します。私は元のベクトルとこのベクトルの前の4つの値のロール平均を持つ列をtableoutputとして表示します。ユーザは値200を追加した場合、例えば、私は
md <- rollapply(d , mean , fill = NA, width = list(-1:-4))
が期待Dの前の4つの値のロール平均値を有する)(
d <- c(rep(100,4),200)
及び使用動物園:: rollapplyを有するであろう私は値を追加する場合、アプリケーションの近くに私の機能を使用することはできませんよ、私の光沢のあるアプリで
cbind(d,md)
d md
[1,] 100 NA
[2,] 100 NA
[3,] 100 NA
[4,] 100 NA
[5,] 200 100
を引き起こします。しかし、私が入力$ c1 + 5のような他の関数を使うと、それは動作します。私は問題は、更新されたベクトルをどのようにキャプチャし、入力としてベクトルを必要とする関数を実行するのかを知らないことだと思います。さらに、アプリケーションを実行するには、新しい列に同じ数の行を一致させる必要がありました。ここで
は私のUIコードです:
library(shiny)
fluidPage(
sidebarPanel(textInput("c1","example"),
actionButton("update", "Update Table")
),
mainPanel(tableOutput("example")
)
)
とサーバ
library(shiny)
library(zoo)
function(input, output) {
#Example
d <- c(rep(100,4))
m <- c(rep(100,4))
md <- reactive(
rollapply(values$df , mean , fill=NA , width=list(-1:-4))
)
values <- reactiveValues(df = data.frame('D' = d, 'M_D'= m))
newEntry <- observe({
if(input$update > 0) {
values$df <- isolate(rbind(values$df,data.frame('D' =input$c1,
'M_D' = md())))
}
})
output$example <- renderTable({values$df})
}
おかげでマイクを、それは私がまさに必要でした。この文脈では、関数を使用して関数を観察する方法を混乱させていました。データフレームの列を呼び出す方法がわかりませんでした(値$ df $ D)。これが私の最初のアプリケーションです。 – Chene
あなたの最初のシャイニーアプリにはかなり遠いです。この種のプログラミング(反応的)は、あなたが通常見るものとはまったく異なります。私はあなたが15ポイントに達するときにもアップフォートをドロップすることを検討するよう依頼します。 –
もちろん、私は投票するには十分なポイントがありません。しかし、私は確かにそれを行います。元の投稿を編集しました。私を助けてください。 – Chene