首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用svytable调用R中的反应性变量

如何使用svytable调用R中的反应性变量
EN

Stack Overflow用户
提问于 2022-08-16 02:17:16
回答 1查看 31关注 0票数 0

我在shiny中设置了这个反应变量。

代码语言:javascript
复制
  v <- reactive({
    var <- switch(input$var,
                   Centers = centers,
                   Homes = homes,
                   homes)

它引用了这两个调查设计对象,它们是根据未加权的子集数据创建的。

代码语言:javascript
复制
centers <- svydesign(id=~HH9_METH_VPSUPU,
                           strata=~HH9_METH_VSTRATUMPU,
                           weights=~HH9_METH_WEIGHT,
                           data=ucenters)

homes <- svydesign(id=~HH9_METH_VPSUPU,
                     strata=~HH9_METH_VSTRATUMPU,
                     weights=~HH9_METH_WEIGHT,
                     data=uhomes)

但是,在tabPanels中,在华夫图中引用它们的结果参差不齐。在下面的队伍里。

代码语言:javascript
复制
  # Flexibility ----
  output$C14A_5 <- renderPlot({
    wvals <- round((as.data.frame(prop.table((svytable(~v()$variables$HH9_C14A_5_FLEX, v()))))$Freq*100), digits = 0)
    val_names <- sprintf("%s (%s)", vallabels, scales::percent(round(wvals/sum(wvals), 2)))
    names(wvals) <- val_names
    waffle::waffle(wvals, title="Importance of flexibility")
  })

我能够在设计字段中获得v()的第二个实例,但是第一个实例给出了一个“未能找到函数”“v”的错误。

在同样的例子中,我也尝试了svytable(~v[‘变量’][‘HH9_C14A_5_FLEX’]),但这告诉我"object 'v‘not found“。

我也试过在呼叫之外指定这个,如下所示.

代码语言:javascript
复制
  # Flexibility ----
  output$C14A_5 <- renderPlot({
    dataset <- v()
    wvals <- round((as.data.frame(prop.table((svytable(~dataset()$variables$HH9_C14A_5_FLEX, v()))))$Freq*100), digits = 0)
    val_names <- sprintf("%s (%s)", vallabels, scales::percent(round(wvals/sum(wvals), 2)))
    names(wvals) <- val_names
    waffle::waffle(wvals, title="Importance of flexibility")
  })

但这给了我“对象‘数据集’找不到”。显然,如果我尝试使用[[而不是$ ]),也是一样的。

我也尝试过使用paste0,但我遇到了与上面相同的问题。

还有什么我可以试试的吗?还有另一种方法可以调用反应性变量来调用它的特性吗?当然有办法做到这一点!

EN

回答 1

Stack Overflow用户

发布于 2022-08-16 15:48:04

使用字符串和as.formula将其转换为公式。

例如,公式~xas.formula("~x")相同。

因此,如果在反应性变量X中有一个字符串,则可以执行as.formula(paste0("~", X()))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73368110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档