0

R で関数を呼び出すときに、結果の値を取得するにはどうすればよいですか。たとえば、「roc」関数を使用し、AUC 値と CI (次の例ではそれぞれ 0.6693 と 0.6196-0.7191) を抽出する必要があります。

> roc(tmpData[,lenCnames], fitted(model), ci=TRUE)

Call:
roc.default(response = tmpData[, lenCnames], predictor = fitted(model),     ci = TRUE)

Data: fitted(model) in 127 controls (tmpData[, lenCnames] 0) < 3248 cases (tmpData[, lenCnames] 1).
Area under the curve: 0.6693
95% CI: 0.6196-0.7191 (DeLong)

以下を使用して、関連するテキストでこれらの値を取得できます。

> z$auc
Area under the curve: 0.6693
> z$ci
95% CI: 0.6196-0.7191 (DeLong)

テキストではなく値のみを取得する方法はありますか。

「正規表現」または「strsplit」関数を使用してこれらを取得する方法を実行しましたが、これらの値に直接アクセスするには他の方法があるはずです。

4

1 に答える 1

3

質問をするときは、再現可能な例を使用すると役立ちます。また、ベースRがロードされていないため、質問しているライブラリ(「pROC」)を参照することをお勧めします。オブジェクトからオブジェクトpROCを抽出する関数がaucあります。ci.aucroc

>library("pROC")
>data(aSAH)
# Basic example
>z <- roc(aSAH$outcome, aSAH$s100b,
    levels=c("Good", "Poor"))

# Examining the class of 'auc' output shows us that it is also of class 'numeric'
> class(auc(z))
[1] "auc"     "numeric"
# calling 'as.numeric' will extract the value
> as.numeric(auc(z))
[1] 0.7313686

# calling 'as.numeric' on the 'ci.auc' object extracts three values.
as.numeric(ci(z))
[1] 0.6301182 0.7313686 0.8326189

# The ones we want are 1 and 3
> as.numeric(ci(z))[c(1,3)]
[1] 0.6301182 0.8326189

関数strclass、およびを使用attributesすると、オブジェクトから必要なものを取得する方法を理解するのに役立つことがよくあります。

于 2013-01-18T17:32:39.890 に答える