質問

Rでは、基本データ型(vector, matrix, list, data.frame)をいくつか持っていて、RパッケージにはS3クラスまたはS4クラス(pppowinspatialPointsDataFrame、その他多くの機能があります。いくつかの機能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"
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top