1. ホーム
  2. class

[解決済み] 変数の種類とクラス

2023-05-28 10:36:27

質問

2つのRに関する質問です。

  1. 型( typeof で返される) 型と (クラスは class によって返される) の違いは何ですか?この違いは、例えばC++言語と同じようなものでしょうか?
  2. 変数にはどのような型やクラスがありますか?

どのように解決するのですか?

Rでは、すべてのquot;object"に modeclass . 前者はオブジェクトがどのようにメモリに格納されているか(数値、文字、リスト、関数)を表し、後者はその抽象的な型を表しています。例えば

d <- data.frame(V1=c(1,2))
class(d)
# [1] "data.frame"
mode(d)
# [1] "list"
typeof(d)
# list

ご覧の通り、データフレームはメモリ上に list として格納されますが、それらは data.frame オブジェクトにラップされます。後者では、メンバ関数が使えるだけでなく、以下のような関数のオーバーロードも可能です。 print のような関数をカスタム動作でオーバーロードすることができます。

typeof ( storage.mode ) と同じ情報を与えます。 mode と同じ情報を与えますが、常にそうとは限りません。例を挙げますと

typeof(c(1,2))
# [1] "double"
mode(c(1,2))
# [1] "numeric"

その理由は、以下の通りです。 ここで :

<ブロッククオート

R固有の関数 タイプオブ はRオブジェクトの型を返します。

機能 モード は、Becker, Chambers & Wilks (1988) の意味でのオブジェクトのモードについての情報を与え、S言語の他の実装とより互換性があります。

私が上に投稿したリンクには、すべてのネイティブ R basic types (ベクトル、リストなど) とすべての compound objects (因子やdata.frame)の例と、どのように mode , typeofclass は、それぞれのタイプで関連しています。