AS.を使用してRのCOERCEクラスデータタイプ
質問
Rでは、基本データ型(vector, matrix, list, data.frame
)をいくつか持っていて、RパッケージにはS3クラスまたはS4クラス(ppp
、owin
、spatialPointsDataFrame
、その他多くの機能があります。いくつかの機能Rパッケージでは、特殊タイプの引数でのみ機能します。
R:
の異なるクラスとデータ型の間の変換に関する説明が必要です:
のようなコードを使うことができる時々m = c(1, 2, 3, 4)
df = as.data.frame(m)
.
しかし、それ以外の場合は、次のようなコードを使用しなければなりません:
shp = readShapeSpatial("polygons.shp")
win = as(shp,"owin")
.
どのようなオブジェクトに使用するas
のどの構文を知っていますか?
またはsyntax:as.foo(originalObject)
は常にas(originalObject, "foo")
と同等です(ここでは、その引数がfoo
クラスになる必要がある関数で使用できるように、オブジェクトを変換できるクラスの表面があります)
クラスfoo
を使用してRにパッケージを使用しましょう。クラスv
に属する変数bar
を持っています(つまり、class(v)
はbar
です)。関数as(v,"foo")
が機能するかどうかを知っていますか?
解決
as.data.frame
は、
foo
を確認できるS3メソッドです。
getS3method('as.data.frame','foo')
.
しかし、私はあなたが探していると思います(コメントされているので)
showMethods(coerce)
.
これはあなたに事前定義されたCoerceの機能のリストを与えるでしょう。
あなたにCoerce関数を定義するには、1つのオプション(setIS
のようなオプション、coerce<-
、継承を通して暗黙の強制)はsetAs
を使用することです。ここで例:
track <- setClass("track",
slots = c(x="numeric", y="numeric"))
setAs("track", "numeric", function(from) from@y)
t1 <- new("track", x=1:20, y=(1:20)^2)
as(t1, "numeric")
.
今すぐ確認した場合:
showMethods(coerce)
.
あなたは:
のエントリを取得しますfrom="track", to="numeric"
.
より良い説明のためにあなたは help( "AS")を読むべきですが、対象はそれほど単純ではありません。
edit トラック付きのエントリのみを表示するには、次のように実行できます。
cat(grep('track',showMethods(coerce,printTo=FALSE),value=TRUE))
from="track", to="numeric"
.