4

我如何绘制以下数据的逐月增长:

             A
2008-07-01   0
2008-08-01  87
2008-09-01 257
2008-10-01 294
2008-11-01 325
2008-12-01 299

(在 dput 格式中,在约书亚追捕我并在我睡梦中谋杀我之前):

structure(c(0L, 87L, 257L, 294L, 325L, 299L), .indexCLASS = c("POSIXt", 
"POSIXct"), .indexTZ = "", index = structure(c(1214884800, 1217563200, 
1220241600, 1222833600, 1225512000, 1228107600), tzone = "", tclass = c("POSIXt", 
"POSIXct")), .Dim = c(6L, 1L), .Dimnames = list(NULL, "A"), class = c("xts", 
"zoo"))
4

2 回答 2

3

定义增长:第一个区别?百分比?在任何一种情况下,只需计算然后绘制:

R> index(KB) <- as.Date(index(KB))    ## what you have are dates, not datetimes
R> barplot(diff(KB), ylab="Change in value", main="Growth")

在此处输入图像描述

您还可以使用标准线图:

R> plot(diff(KB), type='b', ylab="Change in value", main="Growth")

在此处输入图像描述

并更改type=此图的参数以显示条形图等 pp。 通常会绘制百分比变化,但鉴于您的第一个数据点,这在此处是不可接受的(如 Gavin 所述),因此在此说明中存在差异。

于 2011-07-29T17:53:08.283 回答
1

dput()在 object 中使用您的数据dat,并假设您的意思是上个月的月份百分比变化,那么:

R> (diff(dat) / lag(dat)) * 100
                            A
2008-07-01 05:00:00        NA
2008-08-01 05:00:00       Inf
2008-09-01 05:00:00 195.40230
2008-10-01 05:00:00  14.39689
2008-11-01 04:00:00  10.54422
2008-12-01 05:00:00  -8.00000

(忘记剧情了)

plot((diff(dat) / lag(dat)) * 100, main = "",
     ylab = "% growth (for some definition of % growth)")

在此处输入图像描述

不知道如何最好地处理第二个月 - 增长百分比是无限的......

于 2011-07-29T17:53:41.203 回答