2012-05-02 2 views
1

안녕하세요, 여러 명령의 경우 Rserve의 반환 유형을 이해하고 계시지 않습니다. 예.여러 문장의 경우 Rserve 반환 유형

a<-rnorm(10);a[4];rnorm(3) 

Rserve는 마지막으로 평가 된 문장만을 반환합니다. rnorm (3). Rserve로 세 가지 출력 값을 모두 얻을 수 있습니까?

또한 정확히 어떻게 R에서 마지막으로 계산 된 표현식의 반환 값을 얻을 수 있는지 알고 싶습니까? R에 특수 문자가 있나요?

답변

3

이것은 정상적인 R 동작으로, 함수에서의 동작과 유사합니다. 예를 들어이 수행 한 마지막 작업 이었기 때문에 여기

spam = function(x, y) { 
    z = x + y 
} 

R은 z를 반환합니다.

spam = function(x, y) { 
    z = x + y 
    list(x,y,z) 
} 

이 귀하의 경우에 작동합니다 : 모든 개체를 얻으려면 당신이 목록을 사용할 수 있습니다 또한

a<-rnorm(10);list(a,a[4],rnorm(3)) 

을, 내가 마지막으로 수행 표현을 추출하는 방법을 알고하지 않습니다, 하지만, 어쨌든 사용하지 않는 것이 좋습니다. 이런 종류의 구문은 프로그램의 흐름을 읽기가 더 어렵게 만들고 언제든지 저장하지 않습니다.

+0

흠, 나는 그것을 몰랐습니다. 아마 파이썬을 사용하여 선택했을 것입니다. 나는 대답에서 그것을 삭제했다. –

+0

@SimonUrbanek 안녕하세요, 저는 소스 코드를 확인하기에는 너무 게으르다. :) 명령을 더미 함수 안에있는 Rserve에 보내면 되나요? – FUD

+0

아니요, 그들은 하나씩 (파서가 표현 벡터를 반환합니다) 평가되고 마지막 값이 전송됩니다 - 이것은 초보 사용자를위한 트랩을 피하기 위해 단순히'{''}'에 코드를 래핑하는 것이 더 효율적입니다 그래서 당신은 오직 하나의 표현만을 가지고 있습니다. 그래서, 아니, 당신은'return()'을 사용할 수 없습니다.) –