我有一个大数据框,我正在尝试根据数据框中的组构造一个字符串,以便在shinyTree中显示。
下面是一个数据示例:
dat <- data.frame("region" = c(paste("region", rep(1:3, each=4))),
"area" = c(paste("area", rep(1:6, each=2))),
"name" = c(paste("name",1:12)))
shinyTree
要求数据以如下所示的字符串构造:
listString <- paste0("list('region 1' = list('area 1' = list('name 1'='', 'name 2'=''),
'area 2' = list('name 3'='', 'name 4'='')),
'region 2' = list('area 3' = list('name 5'='', 'name 6'=''),
'area 4' = list('name 7'='', 'name 8'='')),
'region 3' = list('area 5' = list('name 9'='', 'name 10'=''),
'area 6' = list('name 11'='', 'name 12'='')))")
有没有办法在 dplyr 中使用 mutate 和 groups 来构造这个字符串?"list("
元素应连接到每个组的第一次出现。
我已经尝试使用嵌套for
循环和嵌套lapply()
函数compiler::cmpfun()
来加速它,但事实证明这太慢而无法构建。我的数据有 5 个“级别”和 ~3000 行,处理大约需要 30 秒,这对于闪亮的应用程序来说太慢了。
任何帮助将不胜感激。