gpt4 book ai didi

r - 如何有效地对 R Shiny 中的数据框进行子集化?

转载 作者:行者123 更新时间:2023-12-01 22:52:12 28 4
gpt4 key购买 nike

在下面的示例代码中,我 react 性地对 renderPlot() 中的 mtcars 数据帧进行了子集化。功能。但是,在我的大型应用程序中,服务器部分有许多渲染功能,我不得不重复相同的 rv$x[1:input$samples]等等,在很多地方一遍又一遍。我如何将此子集而不是“在顶部”应用到 rv <- reactiveValues(...) 中功能本身或等效的“主功能”?我尝试在 reactiveValues() 中进行子集化并收到消息“警告:错误:无法访问响应式(Reactive)消费者之外的 react 值‘样本’。您需要在响应式(Reactive) () 或观察者 () 中包装吗?”我错误地认为 reactiveValues()函数是一个“ react 性消费者”。

如果有人能回答这个基本的理解问题,请解释正确子集“在顶部”的逻辑,因为我对 Shiny react 性的重复问题感到非常尴尬。

library(shiny)

ui <- fluidPage(
sliderInput('samples','Nbr of samples:',min=2,max=32,value=16),
plotOutput("p")
)

server <- function(input, output, session) {

rv <- reactiveValues(
x = mtcars$mpg,
y = mtcars$wt
)

output$p <- renderPlot({plot(rv$x[1:input$samples],rv$y[1:input$samples])})

}

shinyApp(ui, server)

最佳答案

您可以通过多种方式处理此问题。

这是在 observe 中创建新子集 react 值的一种方法。

library(shiny)

ui <- fluidPage(
sliderInput('samples','Nbr of samples:',min=2,max=32,value=16),
plotOutput("p")
)

server <- function(input, output, session) {

rv <- reactiveValues(
x = mtcars$mpg,
y = mtcars$wt
)

observe({
rv$x_sub <- rv$x[1:input$samples]
rv$y_sub <- rv$y[1:input$samples]
})

output$p <- renderPlot({plot(rv$x_sub,rv$y_sub)})

}

shinyApp(ui, server)

enter image description here

关于r - 如何有效地对 R Shiny 中的数据框进行子集化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74112156/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com