2010-07-04 20 views
1

format(Sys.Date(),"%m")返回"07",但我希望它返回"7",同時在需要時仍返回兩個字符。添加width=8到參數列表沒有幫助,也沒有任何其他我已經嘗試過。如何獲取format()返回1個字符的結果?

我的最終目標是讓股票報價閱讀功能在頁面上。 R在堅果殼中的182個工作正常。

回答

3

許多方法可以做到這一點,但substr()可能效果最好。與兩個數字組合ifelse()。

as.character(as.numeric(format(Sys.Date(),"%m"))) 

as.character(as.POSIXlt(Sys.Date())$mon + 1) 

substr(format(Sys.Date(),"%m"), 2, 2) 
+0

嗯。謝謝。我一直在使用Nutshell的get.quotes命令手動玩,然後做一個手動的read.csv,我認爲這是一個虛驚。我不確定這是什麼問題,但我會檢查一下。 也許我真正的問題應該是如何讓這個功能起作用。 – Bill 2010-07-04 01:57:46

+0

你的錯誤是什麼?看起來像本書是Google Preview-able:http://oreilly.com/catalog/9780596801717/preview – apeescape 2010-07-04 02:21:49

+0

substr()例子將只返回數字月份的最後一位,這不是十月到十二月。 – nullglob 2010-07-04 20:07:14

0

您可以使用gsub刪除前導零:

> gsub('^0','',format(Sys.Date(),"%m"),perl=TRUE) 
[1] "7" 
> gsub('^0','',format(as.Date('2010-10-10'),"%m"),perl=TRUE) 
[1] "10" 
相關問題