R オブジェクトのプロパティを特定する
データ分析では、使用する関数または演算子が一部のオブジェクトでは機能するが、他のオブジェクトでは機能しないという状況に遭遇する場合があります。 これは、関数/演算子が特定のタイプのオブジェクトに対してのみ機能するために発生します。
たとえば、$
演算子はリストでは機能しますが、原子ベクトルでは機能しません。
コード例:
# A list.
l = list(one="First", two="Last")
# A vector.
v = c(one="First", two="Last")
l$one # Works.
v$one# Error.
出力:
> l$one # Works.
[1] "First"
> v$one# Error.
Error in v$one : $ operator is invalid for atomic vectors
R オブジェクトのプロパティを特定する
この記事では、扱うオブジェクトのさまざまなプロパティを識別するのに役立つ関数について説明します。
この記事では、各機能の簡単な説明と例のみを示します。 これらの関数に関する R のドキュメントには、詳細と例が記載されています。
まず、いくつかの R オブジェクトを作成します。
コード例:
# Vector of numbers.
vn = c(4, 5, 6, 7)
# Vector of Booleans. (A vector of True False values)
vb <- vn%%2 == 0
# Data frame.
dfr = data.frame(Col1=vn, Col2=vb)
str()
関数
str()
関数は、オブジェクトの内部構造を表示します。 任意の R オブジェクトで動作します。
コード例:
str(vn)
str(vb)
str(dfr)
出力:
> str(vn)
num [1:4] 4 5 6 7
> str(vb)
logi [1:4] TRUE FALSE TRUE FALSE
> str(dfr)
'data.frame': 4 obs. of 2 variables:
$ Col1: num 4 5 6 7
$ Col2: logi TRUE FALSE TRUE FALSE
typeof()
関数
typeof()
関数は、R オブジェクトのタイプまたはストレージ モードを表示します。
コード例:
typeof(vn)
typeof(vb)
typeof(dfr)
出力:
> typeof(vn)
[1] "double"
> typeof(vb)
[1] "logical"
> typeof(dfr)
[1] "list"
class()
関数
class()
関数は、R オブジェクトの class
属性を表示します。 このオブジェクトが継承するクラスの名前をリストします。
クラス属性を持たないオブジェクトにも、暗黙のクラスがあります。
コード例:
class(vb)
class(dfr)
# Create a matrix and check its class.
m = matrix(c(1:6), nrow=3)
class(m)
出力:
> class(vb)
[1] "logical"
> class(dfr)
[1] "data.frame"
> class(m)
[1] "matrix" "array"
is.___()
関数
R には多くの組み込みの is.___()
関数があります。 これらの関数は、オブジェクトがそのタイプであるかどうかを示すブール値を返します。
たとえば、与えられたオブジェクトがベクトル、リスト、行列、配列、データフレームなどであるかどうかを確認できます。以下のコードでは、特定のオブジェクトをさまざまな is.___()
関数で確認した結果を見ることができます。
コード例:
# We will check whether the object vb we created is of any of the following types of object.
is.list(vb)
is.vector(vb)
is.atomic(vb)
is.numeric(vb)
is.matrix(vb)
is.data.frame(vb)
is.array(vb)
出力:
> is.list(vb)
[1] FALSE
> is.vector(vb)
[1] TRUE
> is.atomic(vb)
[1] TRUE
> is.numeric(vb)
[1] FALSE
> is.matrix(vb)
[1] FALSE
> is.data.frame(vb)
[1] FALSE
> is.array(vb)
[1] FALSE
attributes()
関数
attributes()
関数は、オブジェクトの属性のリストを表示します。
コード例:
# For the list object.
attributes(l)
# For the data frame object.
attributes(dfr)
# For the matrix object.
attributes(m)
出力:
> # For the list object.
> attributes(l)
$names
[1] "a" "z"
> # For the data frame object.
> attributes(dfr)
$names
[1] "Col1" "Col2"
$class
[1] "data.frame"
$row.names
[1] 1 2 3 4
> # For the matrix object.
> attributes(m)
$dim
[1] 3 2
その他の機能
上記の関数に加えて、R には、オブジェクトに関するより多くの情報を提供する他の関数があります。 それらのいくつかは、特定のタイプのオブジェクトに固有のものです。
より一般的に使用される関数のいくつかは次のとおりです。
dim()
: オブジェクトの寸法を表示します。names()
: オブジェクトのコンポーネントの名前を表示します。summary()
: 統計モデルの場合、モデルの要約を表示します。colnames()
,rownames()
およびrow.names()
: マトリックスのようなオブジェクトの列/行の名前を表示します。 データ フレームの場合、rownames()
はrow.names()
を呼び出し、colnames()
はnames()
を呼び出します。