你不能指望R和plot()
到彌補從任意的字符串,你作爲一個人的理解,但很可能會成爲亂碼計算機數值!
您需要告知R,數據框中的向量Date
表示日期 - 在R術語中表示類"Date"
的對象。現在,因爲你們沒有那裏的日子,所以我們必須把它們組裝起來 - 每個月的第一天就足夠了。考慮這個簡單的示例數據集
df <- data.frame(Date = paste(month.abb, "13", sep = "-"),
AccBH = rnorm(12))
我通知ř即Date
是通過as.Date()
一個"Date"
對象。請注意,我正在粘貼01-
到已在df
中的每個月份組合。還提供了一種合適的format
說明符讓R如何「讀」的日期的元素(讀?strftime
對於這些細節)
一旦我們有正確的格式的數據,如下所示由str()
功能
> str(df)
'data.frame': 12 obs. of 2 variables:
$ Date : Date, format: "2013-01-01" "2013-02-01" ...
$ AccBH: num 0.494 -0.759 -2.204 -2.004 2.808 ...
plot()
作品適當:
plot(AccBH ~ Date, data = df, type = "l")
產生像(你「就會有不同的數據):
如果你想不同的標籤,那麼你就需要自己指定,例如
plot(AccBH ~ Date, data = df, type = "l", xaxt = "n")
with(df, axis.Date(side = 1, x = Date, format = "%b-%y"))
詳情請參閱?axis.Date
。
請注意,有動物園包具有專門爲今年的數據類型,"yearmon"
類。您可以使用此無需通過使用as.yearmon()
功能與您的原始數據
df2 <- data.frame(Date = paste(month.abb, "13", sep = "-"),
AccBH = rnorm(12))
擺弄
require("zoo")
df2 <- transform(df2, Date = as.yearmon(Date, format = "%b-%y"))
然後利用由此產生
zobj <- with(df2, zoo(AccBH, order.by = Date))
這使變量創建一個"zoo"
對象
> zobj
Jan 2013 Feb 2013 Mar 2013 Apr 2013 May 2013 Jun 2013
-0.607986011 1.741046878 -0.603960213 -1.319397405 -0.355051912 0.296862314
Jul 2013 Aug 2013 Sep 2013 Oct 2013 Nov 2013 Dec 2013
0.235978782 -0.308123299 -0.200230379 -0.004428621 -0.858600654 -0.241808594
然後可以繪製
plot(zobj)
但要注意它有它的標記軸的自己的路。
請仔細閱讀[這](http://stackoverflow.com/q/5963269/324364)有關如何寫一個問題,爲我們提供了足夠的信息來真正回答它的一些指導。 – joran 2013-05-13 22:01:14
嗨,歡迎來到SO。我相信你會發現這裏有很多人願意幫助你。如果您可以查看@joran鏈接並提供可複製示例的帖子,它可以幫助其他人更有效地幫助您 – 2013-05-13 22:14:01
如果您在Mac上,以下功能會快速將示例數據添加到剪貼板,您可以只需粘貼到這裏:https://raw.github.com/rsaporta/pubR/gitbranch/reproduce.R – 2013-05-13 22:15:01