3

大きなデータ フレームがあり、データ フレーム内のグループに基づいて文字列を作成して、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 とグループを使用してこの文字列を作成する方法はありますか? 要素は、"list("各グループの最初のオカレンスに連結する必要があります。

forネストされたループとネストされたlapply()関数を使用して高速化を試みcompiler::cmpfun()ましたが、これは構築するには遅すぎることが証明されています。私のデータには 5 つの「レベル」と最大 3000 行があり、処理に最大 30 秒かかります。これは光沢のあるアプリケーションには遅すぎます。

どんな助けでも大歓迎です。

4

1 に答える 1