기본적으로 벡터의 모든 요소에 '시작 시간'과 '종료 시간'이라는 두 가지 추가 특성이 있다는 점을 제외하고는 기본적으로 벡터 클래스와 같아야하는 R 클래스의 새 클래스를 만들고 싶습니다. 기능의 일부는 모든 종류의 기존 인덱싱이어야합니다. 적어도 여기에 코드의 비트를 제공벡터와 같은 색인 생성을 허용하는 R에서 S4 클래스를 만드는 방법은 무엇입니까?
내가 뭘하려 :
setClass(
Class = "Intervals",
representation = representation(
start.time = "POSIXct",
end-time = "POSIXct",
numbers = "numeric"),
contains = "vector"
)
이 분명히 작동하지 않습니다 가입일
iv <- function(start.time, end.time, numbers) {
new(Class="Intervals", start.time = start.time,
end.time = end.time, numbers = numbers)
}
및
st <- seq(1,5)*3600+as.POSIXct("1970-01-01 01:00")
et <- seq(2,6)*3600+as.POSIXct("1970-01-01 01:00")
numbers <- c(1,2,3,4,5)
example <- iv(st,et,numbers)
예 [1 일 이후 : 3] 예 나에게 NA NA 제공.
아니면 내가
setMethod(
f = "[",
signature="Intervals",
definition=function(x,i,j,drop){
...
같은 것을 시작으로 자신에 의해 게터를 작성해야? 물론 나는 인수 x, i, j를 올바르게 처리하는 방법을 모르기 때문에 이것을 피하고자했습니다.
슬롯 'numbers'가 필요합니까? 나를 생략 할 수있는 가상 클래스 벡터로부터 상속하는 방법이 있나요? 또한 나는 수치 값을 포함하는 벡터에 구조를 제약하고 싶지 않다.
이 질문이 너무 사소한 것은 아니지만 책과 pdfs에서 다른 장을 읽고 혼자 해결책을 찾는다.
미리 감사드립니다.
미카
직접 작성해야하지만 개별 인수의 하위 집합 인수를 전달할 수 있으므로 상당히 간단합니다. – hadley
어쩌면 [이 질문] (http://stackoverflow.com/questions/10961842/how-to-define-the-subset-operators-for-a-s4-class) 충분히 가깝습니까? –
예. 나는 그것을 게시 한 후 10 분 (불행하게도) 발견했다. –