No.22465 R 計算結果オブジェクトからの要素の取り出し  【明石】 2017/10/29(Sun) 12:33

青木先生,
いつもお世話になり,ありがとうございます,明石と申します。

過日は,表の突合せ処理についてご教示いただき,誠にありがとうございました。
大変に良い勉強をさせていただきました。
改めて御礼を申し上げます。

Rについてお聞きしたいことがでてきました。
ご教示をいただければ,大変に助かります。
何卒どうぞよろしくお願いいたします。

-----------

質問は,計算結果オブジェクトからの要素の取り出しについてです。

Rの書籍に目を通しました,Google先生にもお聞きしましたが,
私の力では解決できないため,青木先生にご教示をいただきたいと思います。

NMFパッケージのマニュアルのexampleを例にご説明します。
#パッケージNMFの読み込み
library(NMF)

# random data
x <- rmatrix(20,10)

# run default algorithm with rank 2
res <- nmf(x, 2)

summary(res)

> summary(res)
rank sparseness.basis sparseness.coef silhouette.coef
2.0000000 0.1670822 0.4692352 1.0000000
silhouette.basis residuals niter cpu
1.0000000 13.6810699 440.0000000 NA
cpu.all nrun
NA 1.0000000
summary(res)から,以下の6つのスロットの値を取得したいと思います。
rank
sparseness.basis
sparseness.coef
silhouette.coef
silhouette.basis
residuals
resのクラスを確認しました。
> class(res)
[1] "NMFfit"
attr(,"package")
[1] "NMF"
NMFfitクラスということが分かりましたので,マニュアルを参照しました。
> ?NMFfit
http://127.0.0.1:10869/library/NMF/html/NMFfit-class.html
また,スロットの取得もしました。
> slotNames("NMFfit")
[1] "fit" "residuals" "method" "seed" "rng"
[6] "distance" "parameters" "runtime" "options" "extra"
[11] "call" "misc"
>
>
> getSlots("NMFfit")
fit residuals method seed
"NMF" "numeric" "character" "character"
rng distance parameters runtime
"ANY" ".functionSlotNULL" "list" "proc_time"
options extra call misc
"list" "list" "call" "list"
ここから先がまったく分かりません。

どのようにデータハンドリングすれば,
summary(res)の値を取り出すことができるのか,ご教示いただければ助かります。
rank
sparseness.basis
sparseness.coef
silhouette.coef
silhouette.basis
residuals
お手数をおかけいたします。
何卒どうぞよろしくお願いします。

No.22466 Re: R 計算結果オブジェクトからの要素の取り出し  【青木繁伸】 2017/10/29(Sun) 16:09

> a = summary(res)
> a
rank sparseness.basis sparseness.coef silhouette.coef silhouette.basis residuals
2.0000000 0.1547192 0.3082925 1.0000000 1.0000000 11.8603919
niter cpu cpu.all nrun
440.0000000 0.0940000 0.0940000 1.0000000
で,
> str(a)
Named num [1:10] 2 0.155 0.308 1 1 ...
- attr(*, "names")= chr [1:10] "rank" "sparseness.basis" "sparseness.coef" "silhouette.coef" ...
という名前付きのベクトルなので,
> a["rank"]
rank
2
> a["sparseness.basis"]
sparseness.basis
0.1547192
> a[c("residuals", "cpu")]
residuals cpu
11.86039 0.09400
のように,します。当然のことながら「何番目の要素」という指定もできます。
> a[2]
sparseness.basis
0.1547192
> a[10]
nrun
1
> a[7:9]
niter cpu cpu.all
440.000 0.094 0.094

No.22467 【御礼】 Re: R 計算結果オブジェクトからの要素の取り出し  【明石】 2017/10/29(Sun) 20:37

青木先生,
いつもお世話になり,ありがとうございます,明石と申します。

大変にありがたいご教示をいただき,誠にありがとうございました。

ご丁寧に,わかりやすく,ご説明をしてくださいましたので,よくわかりました。

先に進めないで苦慮していましたが,仕組みが分かりました。

心から御礼を申し上げます。
ありがとうございました。

● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る