2013-10-20 1 views
0

디렉토리에서 일부 데이터를 읽는이 스크립트가 있습니다. getwd 기능의 데이터와 출력을 콘솔에 인쇄하고 싶습니다. 그러나 마지막 명령문의 출력 만 인쇄됩니다. 그 이유는 무엇이며 모든 명령문을 콘솔에 인쇄 할 수 있습니까?내 R 스크립트가 마지막 문장만을 인쇄하는 이유

는 여기에 내가 작업 디렉토리 다음 (dt에서) 먼저 출력을 볼 수 있었다을 기대하고 있었는지 내 기능

#!/usr/bin/env Rscript 
getmonitor <- function(id, directory, summarize=FALSE) 
{ 
    target <- paste(directory, id, '.csv', sep="") 
    target 
    dt <- read.csv(target, header=TRUE) 
    dt 
    getwd() 
} 

getmonitor('001', './specdata/') 

입니다.

답변

3

print 문에 명시 적으로 포장해야합니다. 이제 이 함수에서 반환되고 getmonitor이 완료되면 인쇄됩니다.

getmonitor <- function(id, directory, summarize=FALSE) 
{ 
    target <- paste(directory, id, '.csv', sep="") 
    print(target) 
    dt <- read.csv(target, header=TRUE) 
    print(dt) 
    print(getwd()) 
    return(dt) 
} 

getmonitor('001', './specdata/') 

내가 외부에서 필요한 기능일지도 모른다고 생각하여 dt을 반환했습니다. 함수 안에 물건을 인쇄하기 만하면 끝 부분에 return(NULL)을 사용할 수 있습니다.

+0

제어 흐름의 동작을 지적 해 주셔서 감사합니다. 따라서 함수는 다른 초기 명령문과 관계없이 * last * 문만 반환합니다. – TMOTTM

+0

네, 맞습니다. 'return'을 사용하면 함수가 중간의 어딘가로 돌아갈 수 있습니다. –

관련 문제