2013-07-30 6 views
1

우분투 10.04.4 (lucid) 및 R 버전 2.15.3을 사용하는 시스템을 사용하고 있습니다.crontab에서 R 스크립트를 실행하면 명령 줄과 다른 결과가 나타납니다.

내가 명령 줄에서 R CMD BATCH test.time.R를 사용하여이 R 스크립트를 실행하고 잘 작동 :

format(Sys.time(), " %H") 
[1] " 15" 

format(Sys.time(), " %H") >= 12 
[1] TRUE 

을하지만 실행할 때 */1 * * *의 crontab에서 * R CMD BATCH test.time.R, 그렇지 않다 :

format(Sys.time(), " %H") 
[1] " 15" 

format(Sys.time(), " %H") >= 12 
[1] FALSE 

어떤 생각?

이것은 (4 개 중) 유일한 경우이며 다른 컴퓨터는 crontab에서 잘 읽습니다.

아무쪼록 고맙겠습니다. 감사!

+3

우분투에서''15 "> = 12'는 저에게'TRUE'를줍니다. Mac에서는'FALSE'를 얻습니다. 어쨌든 왜 거기에 그 공간이 있니? 그런 이유로 왜 문자열을 숫자와 비교하고 있습니까? – GSee

+0

그 것처럼 보입니다. 문자열을 숫자와 비교하는 것은 새로운 버전의 Ubuntu에서 작동하지만 그렇지 않으면 숫자 여야합니다. 나는 다른 모든 기계에서 작동하고 있었고 초보자로서 그것을 바꾸려고 생각하지 않았기 때문에 내가 그런 식으로 생각한 이유가있다. –

+0

@GSee, Windows XP에서도 '거짓'. – TMS

답변

2

필요가 없으면 문자열을 숫자와 비교하지 마십시오. 형식 패턴에서 공간을 제거한 경우 (즉 " %H" 대신 "%H") 작업해야합니다. 그러나이 경우에는 문자열을 입력 할 필요가 없습니다. POSIXlt으로 변환하고 hour 구성 요소를 추출하여 시간을 숫자로 가져올 수 있습니다. 이것을 시도하십시오 :

as.POSIXlt(Sys.time())$hour > 12 
+0

위에서 언급했듯이 해결책을 제공해 주셔서 감사합니다. 분명 했어야했는데 .. –

관련 문제