# From the book ISLR by Games,Witten,Hastie and Tibshirani
library(ISLR)
objects(grep("ISLR",search()))
##  [1] "Auto"      "Caravan"   "Carseats"  "College"   "Default"  
##  [6] "Hitters"   "Khan"      "NCI60"     "OJ"        "Portfolio"
## [11] "Smarket"   "Wage"      "Weekly"
data("Carseats")
Carseats[1:5,]
##   Sales CompPrice Income Advertising Population Price ShelveLoc Age
## 1  9.50       138     73          11        276   120       Bad  42
## 2 11.22       111     48          16        260    83      Good  65
## 3 10.06       113     35          10        269    80    Medium  59
## 4  7.40       117    100           4        466    97    Medium  55
## 5  4.15       141     64           3        340   128       Bad  38
##   Education Urban  US
## 1        17   Yes Yes
## 2        10   Yes Yes
## 3        12   Yes Yes
## 4        14   Yes Yes
## 5        13   Yes  No
?Carseats
## starting httpd help server ... done
str(Carseats)
## 'data.frame':    400 obs. of  11 variables:
##  $ Sales      : num  9.5 11.22 10.06 7.4 4.15 ...
##  $ CompPrice  : num  138 111 113 117 141 124 115 136 132 132 ...
##  $ Income     : num  73 48 35 100 64 113 105 81 110 113 ...
##  $ Advertising: num  11 16 10 4 3 13 0 15 0 0 ...
##  $ Population : num  276 260 269 466 340 501 45 425 108 131 ...
##  $ Price      : num  120 83 80 97 128 72 108 120 124 124 ...
##  $ ShelveLoc  : Factor w/ 3 levels "Bad","Good","Medium": 1 2 3 3 1 1 3 2 3 3 ...
##  $ Age        : num  42 65 59 55 38 78 71 67 76 76 ...
##  $ Education  : num  17 10 12 14 13 16 15 10 10 17 ...
##  $ Urban      : Factor w/ 2 levels "No","Yes": 2 2 2 2 2 1 2 2 1 1 ...
##  $ US         : Factor w/ 2 levels "No","Yes": 2 2 2 2 1 2 1 2 1 2 ...
table(Carseats$ShelveLoc)
## 
##    Bad   Good Medium 
##     96     85    219
table(Carseats$Urban)
## 
##  No Yes 
## 118 282
table(Carseats$US)
## 
##  No Yes 
## 142 258
summary(Carseats)
##      Sales          CompPrice       Income        Advertising    
##  Min.   : 0.000   Min.   : 77   Min.   : 21.00   Min.   : 0.000  
##  1st Qu.: 5.390   1st Qu.:115   1st Qu.: 42.75   1st Qu.: 0.000  
##  Median : 7.490   Median :125   Median : 69.00   Median : 5.000  
##  Mean   : 7.496   Mean   :125   Mean   : 68.66   Mean   : 6.635  
##  3rd Qu.: 9.320   3rd Qu.:135   3rd Qu.: 91.00   3rd Qu.:12.000  
##  Max.   :16.270   Max.   :175   Max.   :120.00   Max.   :29.000  
##    Population        Price        ShelveLoc        Age       
##  Min.   : 10.0   Min.   : 24.0   Bad   : 96   Min.   :25.00  
##  1st Qu.:139.0   1st Qu.:100.0   Good  : 85   1st Qu.:39.75  
##  Median :272.0   Median :117.0   Medium:219   Median :54.50  
##  Mean   :264.8   Mean   :115.8                Mean   :53.32  
##  3rd Qu.:398.5   3rd Qu.:131.0                3rd Qu.:66.00  
##  Max.   :509.0   Max.   :191.0                Max.   :80.00  
##    Education    Urban       US     
##  Min.   :10.0   No :118   No :142  
##  1st Qu.:12.0   Yes:282   Yes:258  
##  Median :14.0                      
##  Mean   :13.9                      
##  3rd Qu.:16.0                      
##  Max.   :18.0
Carseats$ShelveLoc <- as.factor(Carseats$ShelveLoc)
Carseats$ShelveLoc <- factor(Carseats$ShelveLoc,levels = c("Bad","Medium","Good"))
summary(Carseats)
##      Sales          CompPrice       Income        Advertising    
##  Min.   : 0.000   Min.   : 77   Min.   : 21.00   Min.   : 0.000  
##  1st Qu.: 5.390   1st Qu.:115   1st Qu.: 42.75   1st Qu.: 0.000  
##  Median : 7.490   Median :125   Median : 69.00   Median : 5.000  
##  Mean   : 7.496   Mean   :125   Mean   : 68.66   Mean   : 6.635  
##  3rd Qu.: 9.320   3rd Qu.:135   3rd Qu.: 91.00   3rd Qu.:12.000  
##  Max.   :16.270   Max.   :175   Max.   :120.00   Max.   :29.000  
##    Population        Price        ShelveLoc        Age       
##  Min.   : 10.0   Min.   : 24.0   Bad   : 96   Min.   :25.00  
##  1st Qu.:139.0   1st Qu.:100.0   Medium:219   1st Qu.:39.75  
##  Median :272.0   Median :117.0   Good  : 85   Median :54.50  
##  Mean   :264.8   Mean   :115.8                Mean   :53.32  
##  3rd Qu.:398.5   3rd Qu.:131.0                3rd Qu.:66.00  
##  Max.   :509.0   Max.   :191.0                Max.   :80.00  
##    Education    Urban       US     
##  Min.   :10.0   No :118   No :142  
##  1st Qu.:12.0   Yes:282   Yes:258  
##  Median :14.0                      
##  Mean   :13.9                      
##  3rd Qu.:16.0                      
##  Max.   :18.0
aggregate(Carseats$Sales~Carseats$ShelveLoc+Carseats$Urban,Carseats,mean)
##   Carseats$ShelveLoc Carseats$Urban Carseats$Sales
## 1                Bad             No       5.547273
## 2             Medium             No       7.240882
## 3               Good             No       9.931429
## 4                Bad            Yes       5.515676
## 5             Medium            Yes       7.336159
## 6               Good            Yes      10.352807
aggregate(Carseats$Sales~Carseats$ShelveLoc+Carseats$Advertising,Carseats,mean)
##    Carseats$ShelveLoc Carseats$Advertising Carseats$Sales
## 1                 Bad                    0       5.109429
## 2              Medium                    0       6.720000
## 3                Good                    0       9.270714
## 4                 Bad                    1       3.150000
## 5              Medium                    1       5.752000
## 6                Good                    1      11.395000
## 7                 Bad                    2       5.150000
## 8              Medium                    2       6.295000
## 9                Good                    2       9.245000
## 10                Bad                    3       5.475000
## 11             Medium                    3       7.613333
## 12               Good                    3      12.660000
## 13                Bad                    4       4.514000
## 14             Medium                    4       6.555000
## 15               Good                    4      11.706667
## 16                Bad                    5       6.590000
## 17             Medium                    5       6.194167
## 18               Good                    5       9.750000
## 19                Bad                    6       4.635000
## 20             Medium                    6       5.964000
## 21                Bad                    7       3.593333
## 22             Medium                    7       7.791667
## 23               Good                    7      11.235000
## 24                Bad                    8       7.690000
## 25             Medium                    8       8.108571
## 26               Good                    8       8.440000
## 27                Bad                    9       8.320000
## 28             Medium                    9       6.508000
## 29               Good                    9      10.440000
## 30                Bad                   10       5.853333
## 31             Medium                   10       8.413636
## 32               Good                   10      10.257500
## 33                Bad                   11       6.128333
## 34             Medium                   11       7.441667
## 35               Good                   11       9.972500
## 36                Bad                   12       6.150000
## 37             Medium                   12       8.464545
## 38               Good                   12       9.840000
## 39                Bad                   13       6.711667
## 40             Medium                   13       7.268889
## 41               Good                   13       8.994000
## 42             Medium                   14       8.591000
## 43               Good                   14      13.440000
## 44                Bad                   15       5.127500
## 45             Medium                   15       8.310000
## 46               Good                   15      11.410000
## 47                Bad                   16       9.075000
## 48             Medium                   16       8.875000
## 49               Good                   16      11.180000
## 50             Medium                   17       7.745000
## 51               Good                   17      11.670000
## 52                Bad                   18       1.420000
## 53             Medium                   18       9.534000
## 54                Bad                   19       6.835000
## 55             Medium                   19       8.300000
## 56               Good                   19      13.445000
## 57                Bad                   20       6.900000
## 58             Medium                   20       5.740000
## 59               Good                   20      12.980000
## 60                Bad                   21       3.900000
## 61                Bad                   22       7.680000
## 62             Medium                   22      10.260000
## 63                Bad                   23       8.550000
## 64               Good                   23       9.580000
## 65               Good                   24      12.490000
## 66             Medium                   25       8.750000
## 67             Medium                   26       8.030000
## 68             Medium                   29       9.530000
x <- seq(1,10)
y <- x
plot(x,y,col="green")
f <-outer(x,y,function(x,y)cos(y)/(1+x^2))
contour(x,y,f,nlevels = 45,add = T)

fa <- (f-t(f))/2
contour(x,y,fa,nlevels = 15)

image(x,y,fa)

persp(x,y,fa)

persp(x,y,fa,theta = 30)

persp(x,y,fa,theta = 30,phi = 20)

persp(x,y,fa,theta = 30,phi = 70)

persp(x,y,fa,theta = 30,phi = 40)

A <- matrix(1:16,4,4)
A
##      [,1] [,2] [,3] [,4]
## [1,]    1    5    9   13
## [2,]    2    6   10   14
## [3,]    3    7   11   15
## [4,]    4    8   12   16
A[c(1,3)]
## [1] 1 3
A[,c(2,4)]
##      [,1] [,2]
## [1,]    5   13
## [2,]    6   14
## [3,]    7   15
## [4,]    8   16
A[c(1,3),c(2,4)]
##      [,1] [,2]
## [1,]    5   13
## [2,]    7   15