2013-02-20 4 views
0

다양한 데이터 (~ 50 개 데이터 세트)에서 실행해야하는 표준 데이터 분석 절차가 있습니다. 나는 그것을 얼마 동안 개발해 왔으며 이제는 데이터 집합을 취하고 각 데이터 집합에 대해 합리적인 테이블을 뱉어내는 함수로 바꾸고 싶습니다. 그러나,이 과정은 4 개의 스크립트 파일에 걸쳐 진행되었고, 지금까지 source을 하나씩 사용하여 실행했지만, function으로는 불가능한 것처럼 보입니다. 데이터 집합에서 실행할 때외부 파일에서 작동하는 소스 코드 포함 R

foo <- function(data) { 
    a <- somevariable 
    source("..somefile..") #The code in there uses a, but a is not in the workspace... 
    .. 
    continue 
    .. 
} 

코드는 충돌 :

는 나는 다음과 같은 문제가있다.

컴파일하는 동안 다른 파일에서 명령을 복사하여 붙여 넣는 방법이 있습니까 (실제로 컴파일하지 않아도 어떻게 다르게 호출 할 수 있는지 모르겠 음)? 나는 내가 직접 복사 - 붙여 넣기 만 할 수 있다는 것을 알고 있지만, 코드의 가독성을 위해 별도의 파일에 보관하고 싶은 신경망 및 ARFIMA 견적을 다양한 단계에 포함하므로 오히려하지 않을 것입니다. 어쨌든 함수는 복사 - 붙여 넣기 한 후

들으 ... 확실히 친화적 인 사용자가 아닌 코드의 200 개 라인과 같은 것

+0

현재 파일에 당신이 현재 함수의 인수를 '소스 화'하지 않았습니까? 특정 작업을 수행하는 함수로 형식화를 시작하고, 작은 패키지를 빌드하거나 (또는 ​​적어도 모든 함수를 소스로 만든 다음 다른 함수에서 사용하는 것처럼) 근사한 것처럼 들립니다. –

+0

아니요, 패키지가 유용하지 않게 만드는 것은 단지 하나의 목적을 가진 코드 일 뿐이므로 이미이 분석을 수행하는 데 꽤 큰 패키지를 만들었습니다. ;) 컴파일시 일부 텍스트 만 포함하는 함수가 R에 있습니까? – krhlk

+0

'편집시 일부 텍스트 만 포함합니다.'라는 말의 의미가 확실하지 않습니다. 다른 기능으로 전달할 텍스트 블록을 포함하거나 HTML 파일과 같은 파일에 텍스트 블록을 쓰는 기능은 분명 있습니다. –

답변

1

난 당신의 감각을 얻을 수 있도록 최소한의 예로 시작하는 게 좋을 것 무엇 함수를 작성하는 방법, source()를 사용하여 R에 함수를로드하는 방법, 인수를 사용하는 방법, 함수를 호출하는 방법 등이 포함됩니다. 그렇게 한 후에는 다음에 어디로 가야하는지 분명하게 알 수 있습니다.

귀하의 질문에 답하기 위해 스크립트에 200 줄의 코드가 포함되어 있고 단 한가지 만 수행하면 (즉, 하나의 기능 만 수행하는 경우), 함수로 묶는 것에 대해 고려해야합니다. 실제로 스크립트는 원래 200 행의 코드가 아니라 한 행 (함수 호출) 만 포함 할 수 있기 때문에 사용자 친화도를 높이기보다는 늘릴 것입니다.

+0

예, 함수로 다시 작성할 수는 있지만 많은 시간이 걸릴 것이고 텍스트 만 포함하는 명령이 있는지 궁금합니다. – krhlk

+0

일단 당신이 알고 싶으면 얼마나 많은 시간이 걸릴 것 같지 않은가? :) 그러나 source()는 생각하는 경우 함수 내의 다른 파일에서 코드를 실행하는 데 사용할 것입니다. 그건 좀 쉬워. – seandavi

0

내가 여기 추측하고있어하지만,이 같은 : 스크립트에

myfunc <- function() { 
if (something) source("path to script") 
} else { 
if (another thing) source("path to another script") 
} 
Do calcs and return the result 
} 

또는 경로는 함수 인수 될 수 있습니다.

관련 문제