5

このオブジェクトを含むリストからオブジェクトの名前を取得しようとしています。同様の質問を検索したところ、deparse(substitute(object))式の使用に関するいくつかの提案が見つかりました。

> my.list <- list(model.product, model.i, model.add)
> lapply(my.list, function(model) deparse(substitute(model)))

結果は次のとおりです。

[[1]]
[1] "X[[1L]]"

[[2]]
[1] "X[[2L]]"

[[3]]
[1] "X[[3L]]"

一方、私は取得したい:

[1] "model.product", "model.i", "model.add"

助けてくれてありがとう!

4

4 に答える 4

3
names(my.list) #..............

ちょっと待って、実際に名前を作成したわけではありませんか? リスト関数には実際には「メモリ」はありません。引数として指定されたペアリストに名前を追加しない限り、引数の値を含むリストを返しますが、それらがどこから来たのかはわかりません。

于 2013-09-18T00:03:18.630 に答える
1

一度作成すると、その方法で情報を抽出することはできませんmy.list

根底にあるR仕組みは、式が必要になるまで評価されないということです。usingdeparse(substitute())は、式が評価される前にのみ機能します。そう:

deparse(substitute(list(model.product, model.i, model.add)))

あなたのものは機能しませんが、機能するはずです。

于 2013-09-18T00:03:27.403 に答える