문제

나는 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 어떤 객체에 사용할까?아니면 구문은 다음과 같습니다. as.foo(originalObject) 항상 동등하다 as(originalObject, "foo") (여기서 foo는 인수가 필요한 함수에서 사용할 수 있도록 객체를 변환하려는 클래스를 나타냅니다. foo 수업)

R에서 클래스와 함께 패키지를 사용한다고 가정해 보겠습니다. foo.그리고 변수가 있어요 v 그건 수업에 속해 있어 bar (다시 말해서, class(v) ~이다 bar).기능이 있는지 어떻게 알 수 있나요? as(v,"foo") 작동할까요?

도움이 되었습니까?

해결책

as.data.frame 확인할 수 있는 S3 방법입니다. foo 사용 :

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

하지만 나는 당신이 찾고 있다고 생각합니다 (댓글대로)

showMethods(coerce)

그러면 미리 정의된 강제 기능 목록이 제공됩니다.

강제 기능을 정의하려면 하나의 옵션(다음과 같은 옵션이 많이 있음) 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"

더 나은 설명을 보려면 읽어야합니다. 도움말("로") 그러나 주제는 그다지 간단하지 않습니다.

편집하다 트랙이 있는 항목만 표시하려면 다음과 같이 하면 됩니다.

cat(grep('track',showMethods(coerce,printTo=FALSE),value=TRUE))
from="track", to="numeric"
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top