gpt4 book ai didi

r - 动态更新 ggvis Shiny 的用户输入?

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

我是编程、R、shiny 和 ggvis 的初学者,试图全神贯注于基于用户输入的响应式(Reactive)数据更新。下面是一个 Shiny 的应用程序的可重现示例,其中包含我正在尝试构建的类型的时间过程图。

应用应该运行,并且应该根据用户输入的变化进行更新。但是,只有在 ggvis() 调用中使用“映射”语法 ( = ) 调用 x、y 和大小变量时,该图才会更新。我的直觉是使用“设置”语法 ( := ) 或 ( ~ ) 运算符将有助于解决以下问题:

问题是,当用户输入改变时,不是生成新图,而是将新图发送到客户端,我希望数据点动态更新 - 飞过图到他们的新(x ,y,size) 位置。

对于 ggvis 如何将给定数据点(从数据框的各个列中获取的 x、y 和大小值)绑定(bind)到更新的数据点(同一行中的三个不同列),我在语法上还不太满意该数据框)。目前 ggvis 中是否有允许我正在寻找的更新类型的功能?

ui.R

library(shiny)
library(ggvis)

shinyUI(pageWithSidebar(

headerPanel=headerPanel("Reactive Data Update Problem"),

sidebarPanel=sidebarPanel(
selectInput("timePoint",
"Choose Time Point:",
list("time1" = 1,
"time2" = 2
)
)
),

mainPanel=mainPanel(
tabsetPanel(
tabPanel('Plot',
ggvis_output("myDotPlot")),
tabPanel('Table',
dataTableOutput("myDataTable"))
)
)
)
)

服务器.R

library(shiny)
library(ggvis)

# Create sample dataset
time1x <- rexp(500, 2)
time1y <- rexp(500, 1)
time1s <- abs(log2(time1x/time1y))
time2x <- rexp(500, .02)
time2y <- rexp(500, .01)
time2s <- abs(log2(time2x/time2y))

myDataTable <- data.frame( "time1x" = time1x
, "time1y" = time1y
, "time1s" = time1s
, "time2x" = time2x
, "time2y" = time2y
, "time2s" = time2s
)

# Define paster functions allowing an input integer to represent a d.f column
xFormat <- function(timePoint) { paste("time", timePoint, "x", sep = "") }
yFormat <- function(timePoint) { paste("time", timePoint, "y", sep = "") }
sFormat <- function(timePoint) { paste("time", timePoint, "s", sep = "") }


# Define server logic necessary to produce plot
shinyServer(function(input, output, session){

myDotPlot <- reactive({

ggvis(myDataTable, props( x = as.name(xFormat(input$timePoint))
, y = as.name(yFormat(input$timePoint))
, size = as.name(sFormat(input$timePoint))
)
) + mark_point()

})

output$myDataTable = renderDataTable({myDataTable})

observe_ggvis(myDotPlot, 'myDotPlot', session)

})

最佳答案

我得到一个错误:找不到函数“ggvis_output”,ui.R 的第 20 行应该是:

ggvisOutput("myDotPlot")),

observe_ggvis 语句也有问题。 server.R的第40行

关于r - 动态更新 ggvis Shiny 的用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23431408/

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