R Shiny 如何在不显示 c(...) 的情况下呈现列表

R Shiny how to render a list without displaying c(...)

我正在尝试根据 user-selected 变量显示前三名用户的列表(见下文)。我创建了一个函数,该函数根据通过下拉菜单选择的代理机构过滤我的 table,并检索列中的前 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 在列中显示结果,但老实说,中间列的标题看起来很难看,所以我宁愿将信息显示为纯文本的名称列表。关于如何清理这个字符串有什么建议吗?

提前致谢!

尝试使用 %>% .[[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"