XLConnect

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

library(“qicharts”)からABC分析

色の設定

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)