library(XLConnect)
## Loading required package: XLConnectJars
## XLConnect 0.2-11 by Mirai Solutions GmbH [aut],
## Martin Studer [cre],
## The Apache Software Foundation [ctb, cph] (Apache POI, Apache Commons
## Codec),
## Stephen Colebourne [ctb, cph] (Joda-Time Java library)
## http://www.mirai-solutions.com ,
## http://miraisolutions.wordpress.com
wb <- loadWorkbook("あやめのデータ.xls", create=TRUE)
wb["あやめ"] <- iris # 組み込みのirisデータ
wb["車"] <- mtcars # 組み込みのmtcarsデータ
saveWorkbook(wb)
wb1 <- loadWorkbook("あやめのデータ.xls")
sh <- getSheets(wb1)
sh
## [1] "あやめ" "車"
data <- readWorksheet(wb1,sh[1],header = TRUE)
head(data,3)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
dim(data)
## [1] 150 5
data <- readWorksheet(wb1,sh[2],header = TRUE)
head(data,3)
## mpg cyl disp hp drat wt qsec vs am gear carb
## 1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## 2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## 3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
dim(data)
## [1] 32 11
library(XLConnect)
wb = loadWorkbook("C:/Users/ShimadaYoshio/Documents/new/web/web1/web1/元帳.xlsx")
sh = getSheets(wb) # シート名の配列を得る
data <- readWorksheet(wb,sh[1],header=TRUE)
#----------------------------------------------
col1 <- length(data) #基準値
na1 <- nrow(data) #商品数
sheets <- length(sh) #シート数
#-----------------------------------------------
shea <- array(0,c(na1,sheets,col1-1))#シェア率
cc <- paste(colnames(data)[2:col1],"シェア率",
sep="")
dimnames(shea) <- list(data[,1],sh,cc)
#---------------------------------------------
seityou <- array(0,c(na1,sheets,col1-1))#成長率
cc <- paste(colnames(data)[2:col1],"成長率",
sep="")
dimnames(seityou) <- list(data[,1],sh,cc)
#--------------------------------------------
cor1 <- array(0,c(na1,6,col1-1))#傾き_相関係数,標準偏差
m1 <- c("傾き","相関係数","mean1","sd1","max1","min1")
cc <- paste(colnames(data)[2:col1],"傾き_相関係数",
sep="")
dimnames(cor1) <- list(data[,1],m1,cc)
#呼び込み
N1 <- length(sh)
N <- nrow(data);M <- ncol(data)-1
MM <- array(0,dim=c(N,M,N1))
dimnames(MM) <- list(data[,1],colnames(data)[2:col1],
sh)
#MM
for(s in c(1:N1)){
data <- readWorksheet(wb, s, header=TRUE)
for (i in c(1:M)) {###!!
MM[,i,s] <- data[,i+1]
}
}
MM
## , , 2014-09-01
##
## AA AB AC AD
## とまと 2 45 65 34
## きゅうり 4 76 34 66
## レモン 11 34 36 98
## 小松菜 24 23 23 35
## 長ネギ 56 12 23 92
## ジャガイモ 24 45 26 45
## サツマイモ 25 55 32 51
## バナナ 112 65 99 88
## みかん 55 33 45 49
##
## , , 2014-09-02
##
## AA AB AC AD
## とまと 23 25 65 34
## きゅうり 23 88 34 77
## レモン 11 34 36 98
## 小松菜 33 23 33 45
## 長ネギ 77 83 23 92
## ジャガイモ 24 45 22 55
## サツマイモ 33 66 32 32
## バナナ 88 65 55 77
## みかん 99 27 33 73
##
## , , 2014-09-03
##
## AA AB AC AD
## とまと 53 44 67 22
## きゅうり 34 65 87 44
## レモン 31 41 65 33
## 小松菜 24 77 55 88
## 長ネギ 35 33 56 73
## ジャガイモ 24 55 33 44
## サツマイモ 59 77 67 34
## バナナ 55 65 99 88
## みかん 33 11 33 22
##
## , , 2014-09-04
##
## AA AB AC AD
## とまと 37 76 65 22
## きゅうり 22 65 43 88
## レモン 78 34 36 98
## 小松菜 36 43 78 99
## 長ネギ 55 65 22 78
## ジャガイモ 33 74 26 45
## サツマイモ 25 55 32 34
## バナナ 44 63 55 82
## みかん 22 33 67 49
##
## , , 2014-09-05
##
## AA AB AC AD
## とまと 111 45 65 34
## きゅうり 113 76 34 66
## レモン 56 34 36 77
## 小松菜 33 23 55 35
## 長ネギ 55 12 23 92
## ジャガイモ 77 45 26 45
## サツマイモ 23 55 32 66
## バナナ 66 65 99 88
## みかん 48 33 45 49
##
## , , 2014-09-06
##
## AA AB AC AD
## とまと 156 45 65 34
## きゅうり 154 31 34 66
## レモン 99 34 36 98
## 小松菜 45 23 23 35
## 長ネギ 67 32 23 92
## ジャガイモ 94 45 26 45
## サツマイモ 77 66 32 51
## バナナ 88 65 99 88
## みかん 99 33 45 49
MM["とまと",,]
## 2014-09-01 2014-09-02 2014-09-03 2014-09-04 2014-09-05 2014-09-06
## AA 2 23 53 37 111 156
## AB 45 25 44 76 45 45
## AC 65 65 67 65 65 65
## AD 34 34 22 22 34 34
MM[,1,]
## 2014-09-01 2014-09-02 2014-09-03 2014-09-04 2014-09-05
## とまと 2 23 53 37 111
## きゅうり 4 23 34 22 113
## レモン 11 11 31 78 56
## 小松菜 24 33 24 36 33
## 長ネギ 56 77 35 55 55
## ジャガイモ 24 24 24 33 77
## サツマイモ 25 33 59 25 23
## バナナ 112 88 55 44 66
## みかん 55 99 33 22 48
## 2014-09-06
## とまと 156
## きゅうり 154
## レモン 99
## 小松菜 45
## 長ネギ 67
## ジャガイモ 94
## サツマイモ 77
## バナナ 88
## みかん 99
MM[,,4]
## AA AB AC AD
## とまと 37 76 65 22
## きゅうり 22 65 43 88
## レモン 78 34 36 98
## 小松菜 36 43 78 99
## 長ネギ 55 65 22 78
## ジャガイモ 33 74 26 45
## サツマイモ 25 55 32 34
## バナナ 44 63 55 82
## みかん 22 33 67 49
class(MM)
## [1] "array"
#加工
for(i in 1:(col1-1)){
#i=1
#シェア率
D <- MM[,i,]
G <- apply(D,2,sum)
shea[,,i] <- round(D/G,2)
#成長率
aa1 <- sapply(2:sheets,function(x){
round((D[,x]-D[,x-1])/D[,x],2)})
seityou[,,i] <- cbind(0,aa1)
#全体G 成長率
G1 <- sapply(2:sheets,function(y){
round((G[y]-G[y-1])/G[y],2)})
G1 <- c(0,G1)
#傾き_相関係数
cor1[,3,i] <- round(apply(D,1,mean),2)#平均値
cor1[,4,i] <- round(apply(D,1,sd),2)#標準偏差
cor1[,5,i] <- round(apply(D,1,max),2)#最大値
cor1[,6,i] <- round(apply(D,1,min),2)#最小値
for(j in 1:na1){
bb <- lm(as.numeric(G1)~as.numeric(seityou[j,,i]))
cor1[j,1,i] <- as.numeric(round(bb$coef[2],2))
cor1[j,2,i] <- round(cor(as.numeric(seityou[j,,i]),as.numeric(G1)),2)
}
}
shea
## , , AAシェア率
##
## 2014-09-01 2014-09-02 2014-09-03 2014-09-04 2014-09-05
## とまと 0.01 0.07 0.17 0.11 0.35
## きゅうり 0.01 0.04 0.08 0.04 0.27
## レモン 0.03 0.01 0.09 0.09 0.16
## 小松菜 0.07 0.11 0.07 0.12 0.09
## 長ネギ 0.10 0.19 0.06 0.13 0.09
## ジャガイモ 0.03 0.07 0.03 0.09 0.09
## サツマイモ 0.08 0.09 0.19 0.07 0.07
## バナナ 0.27 0.15 0.13 0.08 0.16
## みかん 0.16 0.11 0.09 0.03 0.14
## 2014-09-06
## とまと 0.44
## きゅうり 0.26
## レモン 0.11
## 小松菜 0.14
## 長ネギ 0.16
## ジャガイモ 0.27
## サツマイモ 0.22
## バナナ 0.15
## みかん 0.11
##
## , , ABシェア率
##
## 2014-09-01 2014-09-02 2014-09-03 2014-09-04 2014-09-05
## とまと 0.12 0.05 0.11 0.15 0.12
## きゅうり 0.17 0.23 0.14 0.17 0.17
## レモン 0.07 0.09 0.09 0.09 0.07
## 小松菜 0.05 0.06 0.15 0.11 0.05
## 長ネギ 0.03 0.18 0.09 0.14 0.03
## ジャガイモ 0.12 0.10 0.15 0.16 0.12
## サツマイモ 0.14 0.13 0.20 0.11 0.14
## バナナ 0.14 0.17 0.14 0.16 0.14
## みかん 0.07 0.07 0.02 0.09 0.07
## 2014-09-06
## とまと 0.09
## きゅうり 0.08
## レモン 0.09
## 小松菜 0.06
## 長ネギ 0.07
## ジャガイモ 0.10
## サツマイモ 0.13
## バナナ 0.17
## みかん 0.09
##
## , , ACシェア率
##
## 2014-09-01 2014-09-02 2014-09-03 2014-09-04 2014-09-05
## とまと 0.17 0.15 0.17 0.15 0.17
## きゅうり 0.10 0.08 0.26 0.10 0.10
## レモン 0.06 0.09 0.12 0.09 0.06
## 小松菜 0.05 0.09 0.13 0.20 0.13
## 長ネギ 0.06 0.07 0.13 0.07 0.06
## ジャガイモ 0.07 0.04 0.09 0.05 0.07
## サツマイモ 0.08 0.08 0.17 0.08 0.08
## バナナ 0.30 0.13 0.30 0.13 0.30
## みかん 0.08 0.09 0.06 0.17 0.08
## 2014-09-06
## とまと 0.15
## きゅうり 0.08
## レモン 0.09
## 小松菜 0.06
## 長ネギ 0.07
## ジャガイモ 0.05
## サツマイモ 0.08
## バナナ 0.24
## みかん 0.12
##
## , , ADシェア率
##
## 2014-09-01 2014-09-02 2014-09-03 2014-09-04 2014-09-05
## とまと 0.06 0.06 0.04 0.04 0.06
## きゅうり 0.11 0.14 0.08 0.16 0.11
## レモン 0.22 0.18 0.07 0.18 0.17
## 小松菜 0.06 0.08 0.15 0.18 0.06
## 長ネギ 0.17 0.16 0.13 0.13 0.17
## ジャガイモ 0.08 0.12 0.08 0.10 0.08
## サツマイモ 0.09 0.05 0.06 0.06 0.12
## バナナ 0.15 0.14 0.15 0.15 0.15
## みかん 0.11 0.13 0.05 0.09 0.11
## 2014-09-06
## とまと 0.06
## きゅうり 0.12
## レモン 0.18
## 小松菜 0.06
## 長ネギ 0.16
## ジャガイモ 0.10
## サツマイモ 0.09
## バナナ 0.16
## みかん 0.09
seityou
## , , AA成長率
##
## 2014-09-01 2014-09-02 2014-09-03 2014-09-04 2014-09-05
## とまと 0 0.91 0.57 -0.43 0.67
## きゅうり 0 0.83 0.32 -0.55 0.81
## レモン 0 0.00 0.65 0.60 -0.39
## 小松菜 0 0.27 -0.38 0.33 -0.09
## 長ネギ 0 0.27 -1.20 0.36 0.00
## ジャガイモ 0 0.00 0.00 0.27 0.57
## サツマイモ 0 0.24 0.44 -1.36 -0.09
## バナナ 0 -0.27 -0.60 -0.25 0.33
## みかん 0 0.44 -2.00 -0.50 0.54
## 2014-09-06
## とまと 0.29
## きゅうり 0.27
## レモン 0.43
## 小松菜 0.27
## 長ネギ 0.18
## ジャガイモ 0.18
## サツマイモ 0.70
## バナナ 0.25
## みかん 0.52
##
## , , AB成長率
##
## 2014-09-01 2014-09-02 2014-09-03 2014-09-04 2014-09-05
## とまと 0 -0.80 0.43 0.42 -0.69
## きゅうり 0 0.14 -0.35 0.00 0.14
## レモン 0 0.00 0.17 -0.21 0.00
## 小松菜 0 0.00 0.70 -0.79 -0.87
## 長ネギ 0 0.86 -1.52 0.49 -4.42
## ジャガイモ 0 0.00 0.18 0.26 -0.64
## サツマイモ 0 0.17 0.14 -0.40 0.00
## バナナ 0 0.00 0.00 -0.03 0.03
## みかん 0 -0.22 -1.45 0.67 0.00
## 2014-09-06
## とまと 0.00
## きゅうり -1.45
## レモン 0.00
## 小松菜 0.00
## 長ネギ 0.62
## ジャガイモ 0.00
## サツマイモ 0.17
## バナナ 0.00
## みかん 0.00
##
## , , AC成長率
##
## 2014-09-01 2014-09-02 2014-09-03 2014-09-04 2014-09-05
## とまと 0 0.00 0.03 -0.03 0.00
## きゅうり 0 0.00 0.61 -1.02 -0.26
## レモン 0 0.00 0.45 -0.81 0.00
## 小松菜 0 0.30 0.40 0.29 -0.42
## 長ネギ 0 0.00 0.59 -1.55 0.04
## ジャガイモ 0 -0.18 0.33 -0.27 0.00
## サツマイモ 0 0.00 0.52 -1.09 0.00
## バナナ 0 -0.80 0.44 -0.80 0.44
## みかん 0 -0.36 0.00 0.51 -0.49
## 2014-09-06
## とまと 0.00
## きゅうり 0.00
## レモン 0.00
## 小松菜 -1.39
## 長ネギ 0.00
## ジャガイモ 0.00
## サツマイモ 0.00
## バナナ 0.00
## みかん 0.00
##
## , , AD成長率
##
## 2014-09-01 2014-09-02 2014-09-03 2014-09-04 2014-09-05
## とまと 0 0.00 -0.55 0.00 0.35
## きゅうり 0 0.14 -0.75 0.50 -0.33
## レモン 0 0.00 -1.97 0.66 -0.27
## 小松菜 0 0.22 0.49 0.11 -1.83
## 長ネギ 0 0.00 -0.26 0.06 0.15
## ジャガイモ 0 0.18 -0.25 0.02 0.00
## サツマイモ 0 -0.59 0.06 0.00 0.48
## バナナ 0 -0.14 0.12 -0.07 0.07
## みかん 0 0.33 -2.32 0.55 0.00
## 2014-09-06
## とまと 0.00
## きゅうり 0.00
## レモン 0.21
## 小松菜 0.00
## 長ネギ 0.00
## ジャガイモ 0.00
## サツマイモ -0.29
## バナナ 0.00
## みかん 0.00
cor1
## , , AA傾き_相関係数
##
## 傾き 相関係数 mean1 sd1 max1 min1
## とまと 0.17 0.37 63.67 58.39 156 2
## きゅうり 0.24 0.55 58.33 60.42 154 4
## レモン -0.35 -0.63 47.67 36.31 99 11
## 小松菜 0.36 0.44 32.50 7.92 45 24
## 長ネギ 0.24 0.61 57.50 14.08 77 35
## ジャガイモ 0.60 0.60 46.00 31.26 94 24
## サツマイモ 0.07 0.22 40.33 22.44 77 23
## バナナ 0.53 0.83 75.50 25.09 112 44
## みかん 0.20 0.89 59.33 32.81 99 22
##
## , , AB傾き_相関係数
##
## 傾き 相関係数 mean1 sd1 max1 min1
## とまと 0.09 0.31 46.67 16.40 76 25
## きゅうり 0.00 0.00 66.83 19.53 88 31
## レモン -0.17 -0.13 35.17 2.86 41 34
## 小松菜 0.12 0.46 35.33 21.92 77 23
## 長ネギ 0.07 0.87 39.50 28.82 83 12
## ジャガイモ 0.44 0.88 51.50 11.73 74 45
## サツマイモ -0.03 -0.05 62.33 8.98 77 55
## バナナ -6.50 -0.78 64.67 0.82 65 63
## みかん -0.02 -0.07 28.33 8.82 33 11
##
## , , AC傾き_相関係数
##
## 傾き 相関係数 mean1 sd1 max1 min1
## とまと 12.33 0.95 65.33 0.82 67 65
## きゅうり 0.41 0.88 44.33 21.21 87 34
## レモン 0.53 0.88 40.83 11.84 65 36
## 小松菜 0.05 0.14 44.50 21.91 78 23
## 長ネギ 0.28 0.82 28.33 13.56 56 22
## ジャガイモ 1.17 0.98 26.50 3.56 33 22
## サツマイモ 0.40 0.86 37.83 14.29 67 32
## バナナ 0.34 0.78 84.33 22.72 99 55
## みかん -0.19 -0.27 44.67 12.42 67 33
##
## , , AD傾き_相関係数
##
## 傾き 相関係数 mean1 sd1 max1 min1
## とまと 0.32 0.52 30.00 6.20 34 22
## きゅうり 0.41 0.99 67.83 14.62 88 44
## レモン 0.18 0.94 83.67 26.20 98 33
## 小松菜 0.01 0.03 56.17 29.38 99 35
## 長ネギ 0.86 0.66 86.50 8.67 92 73
## ジャガイモ 0.91 0.70 46.50 4.18 55 44
## サツマイモ -0.14 -0.27 44.67 13.59 66 32
## バナナ -1.49 -0.78 85.17 4.67 88 77
## みかん 0.15 0.89 48.50 16.15 73 22
class(shea)
## [1] "array"
t(shea[,,1])
## とまと きゅうり レモン 小松菜 長ネギ ジャガイモ サツマイモ
## 2014-09-01 0.01 0.01 0.03 0.07 0.10 0.03 0.08
## 2014-09-02 0.07 0.04 0.01 0.11 0.19 0.07 0.09
## 2014-09-03 0.17 0.08 0.09 0.07 0.06 0.03 0.19
## 2014-09-04 0.11 0.04 0.09 0.12 0.13 0.09 0.07
## 2014-09-05 0.35 0.27 0.16 0.09 0.09 0.09 0.07
## 2014-09-06 0.44 0.26 0.11 0.14 0.16 0.27 0.22
## バナナ みかん
## 2014-09-01 0.27 0.16
## 2014-09-02 0.15 0.11
## 2014-09-03 0.13 0.09
## 2014-09-04 0.08 0.03
## 2014-09-05 0.16 0.14
## 2014-09-06 0.15 0.11
a <- as.Date(sh)
class(a)
## [1] "Date"
a2 <- data.frame(cbind(day=sh,t(shea[,,1])))
rownames(a2) <- 1:6
a2
## day とまと きゅうり レモン 小松菜 長ネギ ジャガイモ サツマイモ
## 1 2014-09-01 0.01 0.01 0.03 0.07 0.1 0.03 0.08
## 2 2014-09-02 0.07 0.04 0.01 0.11 0.19 0.07 0.09
## 3 2014-09-03 0.17 0.08 0.09 0.07 0.06 0.03 0.19
## 4 2014-09-04 0.11 0.04 0.09 0.12 0.13 0.09 0.07
## 5 2014-09-05 0.35 0.27 0.16 0.09 0.09 0.09 0.07
## 6 2014-09-06 0.44 0.26 0.11 0.14 0.16 0.27 0.22
## バナナ みかん
## 1 0.27 0.16
## 2 0.15 0.11
## 3 0.13 0.09
## 4 0.08 0.03
## 5 0.16 0.14
## 6 0.15 0.11
class(a2)
## [1] "data.frame"
library(reshape2)
## Warning: package 'reshape2' was built under R version 3.1.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.1.3
dat <- melt(a2,id.vars="day")
## Warning: attributes are not identical across measure variables; they will
## be dropped
head(dat)
## day variable value
## 1 2014-09-01 とまと 0.01
## 2 2014-09-02 とまと 0.07
## 3 2014-09-03 とまと 0.17
## 4 2014-09-04 とまと 0.11
## 5 2014-09-05 とまと 0.35
## 6 2014-09-06 とまと 0.44
p <- ggplot(dat,aes(x=day,y=value,group=variable))###!!!
p <- p + geom_point(aes(colour=variable)) +
geom_line(aes(colour=variable)) + ylab("シェア比率") + ggtitle("AA項目の商品推移グラフ")
p
SS <- as.data.frame(cor1[,,1])
SS
## 傾き 相関係数 mean1 sd1 max1 min1
## とまと 0.17 0.37 63.67 58.39 156 2
## きゅうり 0.24 0.55 58.33 60.42 154 4
## レモン -0.35 -0.63 47.67 36.31 99 11
## 小松菜 0.36 0.44 32.50 7.92 45 24
## 長ネギ 0.24 0.61 57.50 14.08 77 35
## ジャガイモ 0.60 0.60 46.00 31.26 94 24
## サツマイモ 0.07 0.22 40.33 22.44 77 23
## バナナ 0.53 0.83 75.50 25.09 112 44
## みかん 0.20 0.89 59.33 32.81 99 22
p1 <- ggplot(SS,aes(SS[,1],SS[,2],label=rownames(SS))) +
geom_point() +
geom_text(hjust=0, vjust=0) +
xlab("相関係数") + ylab("傾き") +
geom_text(data = NULL, x = 0.4, y = 1.6) +
ggtitle("相関係数と傾きの散布図") + theme_bw()
p1
iro <- function(data,
a,
iro1)
{
n <- nrow(data)
data$cumsum <- round(cumsum(data[,3]),2)
iro <- c()
for(i in 1:n){
iro[i] <- ifelse(data[i,5] < a[1],iro1[1],
ifelse(data[i,5] >= a[1] & data[i,5] < a[2],
iro1[2],iro1[3]))
}
list(iro=iro)
}
==============================================
ABC <- function(data,
sen,
tyou, #x軸の幅調整
main1)
{
n <- nrow(data)
y1 <- max(data[,1])
par(mar=c(4,4,4,4),omi=c(0.2,0.2,0.2,0.2))
barplot(data[,1],space=0,ylim=c(0,c(y1+20)),
xlab="商品",ylab="売上高",col=data[,6])
#axis(1, at=1:25-0.1, labels=rownames(aa))#######
par(new=T)
plot(data[,5],type="l",xlab="商品",ylab="売上高",
main=main1,col=1,lwd=sen,axes=F)
axis(1, at=1:n+tyou ,labels=rownames(data))##
axis(4)
mtext("累積構成比率",side=4,line=3)
}
=======================================================
library("qicharts")
x <- rep(LETTERS[1:25], c(100, 200, 150, 25,
21,47,11,176,338,36,199,238,263,
12, 36, 23, 2, 61,153,155,23,57,89,99,52))
aa <- paretochart(x)
class(aa)
## [1] "data.frame"
aa$p <- round(aa[,4]/100,2)#比率単位の変更
a <- c(0.5,0.85)#区間設定
iro1 <- c(4,3,2)#色設定
aa <- cbind(aa,iro(aa,a,iro1))
main1 <- "??のABC分析"
sen <- 1
tyou <- 0.07
ABC(aa,sen,tyou,main1)