2013-03-27 1 views
0

R에서 클래스와 메소드를 처음 작성했으며 많은 문서를 찾지 못했지만 문제가 발생했습니다. 나는 클래스 'DataImport'을 만든, 아래의 방법을 추가하려합니다 :R의 오류 메시지 : "메소드()에 대한 인수의 이름을 지정하거나 이름이 지정된 목록을 사용해야합니다"

DataImport$methods(reducedImport <- function(filePathOne, dataFrame) 
    { 

    } 
) 

나는 다음과 같은 오류지고있어이 코드를 실행하면 :

Error in DataImport$methods(reducedImport <- function(filePathOne, : 
    Arguments to methods() must be named, or one named list 

내가 할 수 있었다를 이 메서드 바로 앞에 메서드를 추가하면 제대로 작동하지만이 메서드는 작동하지 않습니다. 그게 왜 그런지, 어떻게 고쳐야하는지 이해가 안됩니다.

+0

다음을 읽어보십시오. http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Dason

+0

답장을 보내 주셔서 감사합니다. 나는 그 제안을 이해할 지 모르겠다. 나는 어떤 데이터 프레임이나 데이터도 사용하지 않고 있는데, 위의 메소드는 DataImport <- setRefClass ("DataImport", fields = c ("startDate")) 클래스 정의 만 실행하면된다. . 이 클래스 정의와 원래 게시물에있는 메소드는 클래스를 구성해야하며 앞으로 해당 클래스를 데이터 프레임과 파일 경로에 사용할 수 있도록 클래스를 정의하려고합니다. 이 두 블록의 코드를 실행하면 내가 암시 한 오류가 발생합니다. R에서 수업 사용에 대해 오해하고 있습니까? – tjnel

+0

질문에 해당 클래스의 정의를 포함해야합니다. – Dason

답변

1

Dason이 의견에서 언급했듯이 문제는 할당 문제입니다. 간단한 예제를 만들어 보자 :

c1 = setRefClass("c1", fields = list(data = "numeric")) 
c1$methods(m1 = function(a) a) 

지금은 빠른 테스트 : 그러나

x = c1$new(data=10) 
x$m1(1) 

,

R> c1$methods(m2 <- function(a) a) 
Error in c1$methods(m2 <- function(a) a) : 
    Arguments to methods() must be named, or one named list 

가 표시되는 오류가 있습니다. 그 이유는 <- 연산자가 = 연산자의 slightly different이기 때문입니다. 이것은 일반적으로 중요하지 않습니다 (그러나 여기에 나와 있습니다).

관련 문제