0

pROC パッケージの関数を、 「01」、「02」、「03」のような文字で構成されるサブセットであるroc()dataframe の特定の変数に適用しようとしています。この関数はリストを返すので、オブジェクトがリストであると予想しています。リストには、各サイトの結果のリストが含まれています。dfdf$siteroc()roc_site

roc_site <- dlply(
  .data = df, 
  .variables = "site", 
  .fun = roc, 
  .progress = "text",
  response = df$Risk,
  predictor = df$Rating, 
  na.rm = TRUE, plot = TRUE)

これは正常に実行さroc_siteれ、サイトごとに 1 つのリストで構成されるリストですが、各サイトの結果は同じです。データフレームを分割していません。私は何が欠けていますか?

4

1 に答える 1

2

.funに渡す関数dlplyは、データ フレームのチャンク全体を (最初の) 引数として受け入れる必要があります。

したがって、この場合、本当に必要なのは、データ フレームを取得して必要なものを計算する独自の小さな関数を作成することです。例えば

foo <- function(x){
    roc(x$Risk, x$Rating, na.rm = TRUE, plot = TRUE)
}

その関数を に渡します.fun

同じ結果が得られる理由は、 for each chunk,dlplyがあなたのチャンクを呼び出しrocていますが、渡すたびdf$Riskに であり、それらはデータ セット全体のベクトルです。df$Rating

于 2012-07-04T02:03:37.950 に答える