別のデータフレーム(B)を使用してデータフレーム(A)を更新します。 Bはui
にあり、ユーザはテーブルBのデータを更新するオプションを持っています。Bの更新された値に基づいて、Aを更新したいと思います。以下のコードを参照してください。ボタン:ユーザ入力に基づくデータセットの値を置き換えます。
df2 <- structure(list(A = c(1L, 4L, 0L, 1L),
B = c("3", "*", "*", "2"),
C = c("4", "5", "2", "*"),
D = c("*", "9", "*", "4")),
.Names = c("A", "B", "C", "D"),
class = "data.frame",
row.names = c(NA, -4L))
df1 <- structure(list(variable = c("A", "B", "C", "D"),
Value = c(2L,1L, 9L, 0L)),
.Names = c("variable", "Value"),
class = "data.frame",
row.names = c(NA, -4L))
shinyApp(
ui <-
fluidPage(
titlePanel("Sample"),
# Create a new row for the table.
sidebarLayout(
sidebarPanel(
selectInput("select", label = h3("Select Variable"),
choices = unique(df1$variable),
selected = unique(df1$variable)[1]),
numericInput("num", label = h3("Replace * with"),
value = unique(df1$variable)[1]),
actionButton("applyChanges", "Apply Changes")),
mainPanel(
dataTableOutput(outputId="table")
))),
Server <- function(input, output) {
# Filter data based on selections
output$table <- renderDataTable({
df1$Value[df1$variable==input$select] <<- input$num
df1
})
df2_new <- eventReactive(input$applyChanges,{
df1[as.character(df1$variable)] <- Map(function(x, y)
replace(x, x=="*", y), df2[as.character(df1$variable)], df1$Value)
df2_new <- df2
return(df2_new)
})
})
ご協力いただければ幸いです。ありがとう!!
あなたは大きなありがとうマイク・ワイズ@ 'reactiveValues' – HubertL