3

vector, matrix, list, data.frameR にはいくつかの基本データ型 ( ) があり、R パッケージには S3 クラスまたは S4 クラス ( pppowin、およびその他多数) と呼ばれるいくつかの高度な型があることを理解していますspatialPointsDataFrame。R パッケージの関数の一部は、引数でのみ機能します。特殊タイプの。

R の異なるクラスとデータ型の間の変換について説明が必要です。

時々、次のようなコードを使用できます。

m = c(1, 2, 3, 4)
df = as.data.frame(m)

しかし、それ以外の場合は、次のようなコードを使用する必要があります:

shp = readShapeSpatial("polygons.shp")
win = as(shp,"owin")

asどのオブジェクトにどの構文を使用すればよいかを知るにはどうすればよいですか? または、構文は次のとおりです:as.foo(originalObject)常に同等ですas(originalObject, "foo")(ここで foo は、引数がクラスである必要がある関数で使用できるように、オブジェクトを変換したいクラスを表しますfoo)

R で class を使用してパッケージを使用するとしますfoovそして、クラスに属する変数bar(つまりclass(v)is bar) があります。機能が動作するかどうかはどうすればわかりas(v,"foo")ますか?

4

1 に答える 1

3

as.data.framefooを使用して確認できる S3 メソッドです。

getS3method('as.data.frame','foo')

しかし、私はあなたが探していると思います(コメントされているように)

showMethods(coerce)

これにより、事前定義された強制機能のリストが表示されます。

強制関数を定義するには、1 つのオプション ( のような多くのオプションとsetIScoerce<-継承による暗黙の強制があります) を使用すること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"
于 2014-02-27T19:25:35.773 に答える