2013-11-01 3 views
1

R에 새로운 점이 있으며 객체에 액세스하는 데 문제가 있습니다.목록에서 객체 메소드에 액세스

myObjects <- vector("list", P) 
for(i in 1:10){ 
    myObjects[[i]] <- new.myObject() 
} 

그럼 내가 코드에서 만든 몇 가지 방법에 액세스하려면, 그래서 이렇게 그들에 액세스 할 수있어 :

나는이 같은 목록에서 내 개체를 만들

myObjects[1]@myMethod 
오류 : 나는 오류 얻을 수행 할 때

그러나, 기본 클래스 ("목록")의 물체로부터 슬롯 "MyMethod라는"를 얻으려고 노력없는 슬롯

과를 그냥 1 OBJE이있을 때 ct 내 코드는 제대로 작동하지만 목록에 넣은 후에 목록에서 다시 가져 오는 방법을 모르겠습니다. 나는 R이 '크기 1의 목록'처럼 많은 것을 처리하지만, 여기서는 나를 위해 일하지 않는다. 객체를 포함하는 크기 1 목록이 아닌 목록에서 객체를 가져 오는 방법이 있습니까?

+1

하위 집합에 대한 해들리의 자료를 보시려면 http://adv-r.had.co.nz/Subsetting.html – sckott

+0

S4 구축에 필요한'setClass()'를 사용하고 있지 않습니다 -목적. 일부 언어와 달리 기본 제공되는 '새'연산은 없습니다. R이 당신이 가장 좋아하는 OOP 언어처럼 행동한다고 ​​가정 할 수는 없습니다. –

+0

@DWin : 나는 그 모든 것을 다른 곳에 설치했다. 내가 말했듯이 내 코드는 하나의 객체로 작동하지만 목록에는 없다. – Fozefy

답변

1

[ 연산자는 하위 목록을 제공합니다 : myObjects[1]은 길이가 1 인 목록입니다.

[[은 목록 항목을 가져 오기위한 연산자입니다. myObjects[[1]]은 목록의 첫 번째 항목입니다.

그래서 myObjects[[1]]@myMethod은 여기서 작동해야합니다.

+0

내가 생각한 것보다 훨씬 단순한 Sheesh가 100 % 내 문제를 해결했습니다. 나는이 점을 어느 시점에서 알았고, 그것은 내 마음을 미끄러 뜨렸다 고 생각한다. 적어도 내가 생각하기에 길이가 1 인 목록과 문제가 있다는 것을 알았습니다. – Fozefy

관련 문제