R語言中同比增長和環比增長
阿新 • • 發佈:2019-02-01
同比增長:與上個週期的同一天或者同一個季度,進行對比。
環比增長:與同個週期的不同天或者不同季度,進行對比。
比如,本週星期三與上週星期三進行比較,就是同比,
本週星期三與本週星期二進行比較,就是環比。
下面,以某個論壇的軍事科技版本的每日瀏覽量,來製造一個條形圖,並依據上週和本週資料分為兩組進行展示,進而分析同比增長與環比增長的區別。原始資料如表(一)所示。
用R語言,將上述資料,轉化為條形圖。
data <- data.frame(pre=c(113,134,123,145,137,196,187), now=c(129,122,134,149,146,215,208)); ylim.max <- 550 col = c("azure4","brown4") ##將主副標題放到barplot函式裡,進行設定 ##font=3,表示字型為“斜體” ##cex=1.5,表示字型放大1.5倍 barplot(as.matrix(rbind( data$pre,data$now)), beside=TRUE,ylim=c(0,ylim.max),col=col,axes=F, main=list( "本週pv趨勢分析圖",cex=1.5,col="red",font=3), sub=paste("範圍:2014.12.1--2014.12.7","\n","網站板塊:軍事科技"), ylab="網站日頁面瀏覽量pv" ) axis(2) ##畫圖例 text.legend = c("上週pv","本週pv","pv同比增長","pv環比增長") col2 <- c("black","blue") legend("topleft",pch=c(15,15,16,16), legend=text.legend,cex=0.8,col=c(col,col2),bty="n", horiz=TRUE) ##畫刻度標記 text.x <- c("週一","週二","週三","週四","週五","週六","週日") axis(side=1, c(2,5,8,11,14,17,20), labels=text.x,tick=TRUE, cex.axis=0.75) axis(4,at=seq(from=250,length.out=7,by=40),labels=c("-60%","-40%","-20%","0","20%","40%","60%")) ##新增“同比增長曲線”和“環比增長曲線” ##同比增長 = (now[t]-pre[t])/pre[t] same.pre.growth <- (data$now-data$pre)/data$pre ##環比增長 = (now[t]-now[t-1])/now[t-1] ring.growth <- c(NA,diff(data$now)/data$now[1:(length(data$now)-1)]) a<-200; b<-370; lines(c(2,5,8,11,14,17,20), a*same.pre.growth+b,type="b",lwd=2) lines(c(2,5,8,11,14,17,20), a*ring.growth+b,type="b",lwd=2,col="blue") ##在同比和環比曲線上新增文字 j <- 1 for(i in 1:length(data[,1])){ #在bar上畫數值 text(3*i-1, a*same.pre.growth[i]+b-5, paste(round(same.pre.growth[i]*10000)/100, "%",sep="")); j <- j+1; text(3*i-1, a*ring.growth[i]+b+5, paste(round(ring.growth[i]*10000)/100, "%",sep=""),col="blue"); j <- j+2; } ##在pv柱狀圖上新增文字 j <- 1 for(i in 1:length(data[,1])){ text(j+0.5,data$pre[i]+10, data$pre[i], col="deepskyblue4"); j < j+1 #組內間距為1 text(j+1.5,data$now[i]+10, data$now[i], col="deepskyblue4"); j <- j+3 #組外間距為3 }
效果如下:
圖(2)
說明:PV 表示Page View ,頁面瀏覽量
黑色的曲線,代表pv同比增長曲線
藍色的曲線,代表pv環比增長曲線
從圖(2)中可以看出,每週的週六和週日瀏覽量比較大,而星期一、星期二直到星期五的瀏覽量波動不大。瀏覽量的走勢是:先減小,後增大,再減小,接著反彈到波峰,跟著回到平均水平。可以這麼說,2014年12月6號週六,同比11月29號週六增長9.69%,環比12月5號週五增長47.26%
具體計算如下:
圖(3) 同比與環比的計算方法