【问题标题】:R Shiny how to render a list without displaying c(...)R Shiny 如何在不显示 c(...) 的情况下呈现列表
【发布时间】:2022-06-28 13:10:38
【问题描述】:

我正在尝试根据用户选择的变量显示前三名用户的列表(见下文)。我创建了一个函数,该函数根据通过下拉列表选择的代理商过滤我的表,并检索列中的前 3 个用户。然后我将该列转换为字符串以在应用程序中呈现它,但结果显示在 c(...) 之间:

我可以接受以逗号分隔的名称格式,但我找不到消除 c(...) 的方法。

这是我的函数的代码:

Top3UsersbyAgency <- function(filteredbyAgencyPool) {
                                  filteredbyAgencyPool %>%                       
                                        arrange(desc(MTD_Domestic)) %>% 
                                           group_by(userDisplayName) %>% 
                                              head(3) %>% 
                                                 select(userDisplayName) %>% 
                                                    na.exclude() %>% 
                                                      na_if("") %>% 
                                                        na.omit() %>% 
                                                          toString()
  
}

结果如下:

> Top3UsersbyAgency(filteredbyAgencyPool)
[1] "c(\"Payal Malhotra\", \"Swati Parmar\", \"Unassigned\")"

在应用程序中,我只是在 ui 中使用了 textOutput,在服务器函数中使用了 renderText。我还尝试使用 renderTable 在列中显示结果,但老实说,中间的列标题看起来很难看,所以我宁愿将信息显示为纯文本中的名称列表。有关如何清理此字符串的任何建议?

【问题讨论】:

    标签: r string shiny shinydashboard


    【解决方案1】:

    尝试使用 %&gt;% .[[1]]data.frame 列转换为向量:

    op3UsersbyAgency <- function(filteredbyAgencyPool) {
      filteredbyAgencyPool %>%                       
        arrange(desc(MTD_Domestic)) %>% 
        group_by(userDisplayName) %>% 
        head(3) %>% 
        select(userDisplayName) %>% 
        na.exclude() %>% 
        na_if("") %>% 
        na.omit() %>% 
        .[[1]] %>%
        toString()
    }
    

    作为说明:

    library(magrittr)
    data.frame(c('a','b','c')) %>% toString()
    #> [1] "c(\"a\", \"b\", \"c\")"
    
    data.frame(c('a','b','c')) %>% .[[1]] %>% toString()
    #> [1] "a, b, c"
    

    【讨论】:

    • 由于你导入了 magrittr,你可以使用extract2(1) 而不是.[[1]],这样更易​​读。或者由于您也在使用 dplyr,pull(1) 也是一个不错的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多