3

質問R にはオブジェクトへの参照の概念が含まれていますか。

Python では、等価演算子は実際には参照によるコピーです。例えば:

>> a = [1,2,3]
>> b = a
>> b[1] = 10
>> a
   [1, 10, 3]

またはC++で

 vector a(3);
 a[1] = 1;
 vector& b = a;
 b[1] = 10;
 // now a[1] = 10
4

2 に答える 2

6

おそらく参照クラスを確認する必要がありますが、単純な古い環境を使用することもできます。

> a=new.env()
> a$data=c(1,2,3)
> b=a
> b$data
[1] 1 2 3
> a$data[1]=99
> b$data
[1] 99  2  3

abは同じ環境です:

> a
<environment: 0xa1799fc>
> b
<environment: 0xa1799fc>

そのため、それらのコンテンツは同じオブジェクトです。

他の R OO システム (R.oo、proto?) のいくつかは、このような環境を使用して OO オブジェクトとメソッドを実装していると思います。

したがって、これを行うことはできますが、このような遠距離でのアクションはバグを見つけるのが非常に困難になる可能性があり、おそらくすべきではありません。

于 2013-02-10T09:00:50.553 に答える
1

はい、この機能は R に存在しますが、自分で使用したことはありません。参照クラス (または R5 クラスと呼ばれることもある) は、この種の動作をします。かなり詳細なドキュメントは、例とともに以下のリンクにあります

http://www.inside-r.org/r-doc/methods/ReferenceClasses

SEには、おそらくより多くの例を含むさまざまなプレゼンテーションにリンクする他の質問があります

新しい参照クラスの重要性は何ですか?

于 2013-02-10T08:07:57.290 に答える