0

これは、質問12に関連しています。

次のコマンドを実行して返されるオブジェクトのリストがあります (私の場合、それらはリスト AFAII でもあります)。

gof_stats <- models %>% map(gof_stats)

はによって作成されmodelsたモデルのリストで、は各モデルの適合度統計を計算する関数です。fitdistrplusgof_stats

そのリストから特定の統計を抽出したい場合は、次のようにすることができます。

gof_stats[[1]]$cvm

クラマー・フォン・ミーゼスのステータスを取得します。次のように、リスト全体で(リンクされた質問に従って)同じことを達成できます。

cvms <- sapply(gof_stats, "[[", "cvm")

dplyr/purrr構文を使用して同じことを行う方法はありますか?

modelsボーナス:リスト内の要素の一部が である場合、どのように処理しますNULLか?

4

1 に答える 1

6

あなたがこれを好むならmapsapplyあなたはすることができます

library(purrr)
map(gof_stats, ~ .x[["cvm"]])

パイプが好きなら、できる

gof_stats %>% sapply("[[", "cvm")

あなたの質問はデータフレームではなくリストに関するものなので、dplyr実際には当てはまりません。パイピングが好きなように?magrittr::multiply_by定義されているパッケージからの他のエイリアスのリストを参照するために検索することをお勧めします。%>%たとえば、パイプ チェーンの途中で簡単に使用できるmagrittr::extract2のエイリアスです。[[

NULLおまけとして、要素を抽出する前に、リストを事前にフィルター処理して要素を削除します。

于 2016-07-08T23:41:46.683 に答える