#How to view a dataset 
mtcars
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
print(mtcars)
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
View(mtcars)
dim(mtcars)
## [1] 32 11
str(mtcars)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
head(mtcars,3)
##                mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4     21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710    22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
tail(mtcars)
##                 mpg cyl  disp  hp drat    wt qsec vs am gear carb
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.7  0  1    5    2
## Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.9  1  1    5    2
## Ford Pantera L 15.8   8 351.0 264 4.22 3.170 14.5  0  1    5    4
## Ferrari Dino   19.7   6 145.0 175 3.62 2.770 15.5  0  1    5    6
## Maserati Bora  15.0   8 301.0 335 3.54 3.570 14.6  0  1    5    8
## Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.6  1  1    4    2
head(mtcars[c("mpg","hp","wt")])
##                    mpg  hp    wt
## Mazda RX4         21.0 110 2.620
## Mazda RX4 Wag     21.0 110 2.875
## Datsun 710        22.8  93 2.320
## Hornet 4 Drive    21.4 110 3.215
## Hornet Sportabout 18.7 175 3.440
## Valiant           18.1 105 3.460
myvars <- c("mpg", "hp", "wt")
head(mtcars[myvars])
##                    mpg  hp    wt
## Mazda RX4         21.0 110 2.620
## Mazda RX4 Wag     21.0 110 2.875
## Datsun 710        22.8  93 2.320
## Hornet 4 Drive    21.4 110 3.215
## Hornet Sportabout 18.7 175 3.440
## Valiant           18.1 105 3.460
mtcars[1]
##                      mpg
## Mazda RX4           21.0
## Mazda RX4 Wag       21.0
## Datsun 710          22.8
## Hornet 4 Drive      21.4
## Hornet Sportabout   18.7
## Valiant             18.1
## Duster 360          14.3
## Merc 240D           24.4
## Merc 230            22.8
## Merc 280            19.2
## Merc 280C           17.8
## Merc 450SE          16.4
## Merc 450SL          17.3
## Merc 450SLC         15.2
## Cadillac Fleetwood  10.4
## Lincoln Continental 10.4
## Chrysler Imperial   14.7
## Fiat 128            32.4
## Honda Civic         30.4
## Toyota Corolla      33.9
## Toyota Corona       21.5
## Dodge Challenger    15.5
## AMC Javelin         15.2
## Camaro Z28          13.3
## Pontiac Firebird    19.2
## Fiat X1-9           27.3
## Porsche 914-2       26.0
## Lotus Europa        30.4
## Ford Pantera L      15.8
## Ferrari Dino        19.7
## Maserati Bora       15.0
## Volvo 142E          21.4
mtcars[1,]
##           mpg cyl disp  hp drat   wt  qsec vs am gear carb
## Mazda RX4  21   6  160 110  3.9 2.62 16.46  0  1    4    4
mtcars[1,2]
## [1] 6
mtcars[2]
##                     cyl
## Mazda RX4             6
## Mazda RX4 Wag         6
## Datsun 710            4
## Hornet 4 Drive        6
## Hornet Sportabout     8
## Valiant               6
## Duster 360            8
## Merc 240D             4
## Merc 230              4
## Merc 280              6
## Merc 280C             6
## Merc 450SE            8
## Merc 450SL            8
## Merc 450SLC           8
## Cadillac Fleetwood    8
## Lincoln Continental   8
## Chrysler Imperial     8
## Fiat 128              4
## Honda Civic           4
## Toyota Corolla        4
## Toyota Corona         4
## Dodge Challenger      8
## AMC Javelin           8
## Camaro Z28            8
## Pontiac Firebird      8
## Fiat X1-9             4
## Porsche 914-2         4
## Lotus Europa          4
## Ford Pantera L        8
## Ferrari Dino          6
## Maserati Bora         8
## Volvo 142E            4
class(mtcars[2])
## [1] "data.frame"
class(mtcars[,2])
## [1] "numeric"
mtcars[1:6,]
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
mtcars[,1:6]
##                      mpg cyl  disp  hp drat    wt
## Mazda RX4           21.0   6 160.0 110 3.90 2.620
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875
## Datsun 710          22.8   4 108.0  93 3.85 2.320
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440
## Valiant             18.1   6 225.0 105 2.76 3.460
## Duster 360          14.3   8 360.0 245 3.21 3.570
## Merc 240D           24.4   4 146.7  62 3.69 3.190
## Merc 230            22.8   4 140.8  95 3.92 3.150
## Merc 280            19.2   6 167.6 123 3.92 3.440
## Merc 280C           17.8   6 167.6 123 3.92 3.440
## Merc 450SE          16.4   8 275.8 180 3.07 4.070
## Merc 450SL          17.3   8 275.8 180 3.07 3.730
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345
## Fiat 128            32.4   4  78.7  66 4.08 2.200
## Honda Civic         30.4   4  75.7  52 4.93 1.615
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835
## Toyota Corona       21.5   4 120.1  97 3.70 2.465
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520
## AMC Javelin         15.2   8 304.0 150 3.15 3.435
## Camaro Z28          13.3   8 350.0 245 3.73 3.840
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140
## Lotus Europa        30.4   4  95.1 113 3.77 1.513
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770
## Maserati Bora       15.0   8 301.0 335 3.54 3.570
## Volvo 142E          21.4   4 121.0 109 4.11 2.780
mtcars[,c(1,4,6)]
##                      mpg  hp    wt
## Mazda RX4           21.0 110 2.620
## Mazda RX4 Wag       21.0 110 2.875
## Datsun 710          22.8  93 2.320
## Hornet 4 Drive      21.4 110 3.215
## Hornet Sportabout   18.7 175 3.440
## Valiant             18.1 105 3.460
## Duster 360          14.3 245 3.570
## Merc 240D           24.4  62 3.190
## Merc 230            22.8  95 3.150
## Merc 280            19.2 123 3.440
## Merc 280C           17.8 123 3.440
## Merc 450SE          16.4 180 4.070
## Merc 450SL          17.3 180 3.730
## Merc 450SLC         15.2 180 3.780
## Cadillac Fleetwood  10.4 205 5.250
## Lincoln Continental 10.4 215 5.424
## Chrysler Imperial   14.7 230 5.345
## Fiat 128            32.4  66 2.200
## Honda Civic         30.4  52 1.615
## Toyota Corolla      33.9  65 1.835
## Toyota Corona       21.5  97 2.465
## Dodge Challenger    15.5 150 3.520
## AMC Javelin         15.2 150 3.435
## Camaro Z28          13.3 245 3.840
## Pontiac Firebird    19.2 175 3.845
## Fiat X1-9           27.3  66 1.935
## Porsche 914-2       26.0  91 2.140
## Lotus Europa        30.4 113 1.513
## Ford Pantera L      15.8 264 3.170
## Ferrari Dino        19.7 175 2.770
## Maserati Bora       15.0 335 3.570
## Volvo 142E          21.4 109 2.780
mtcars[c(1,4,6),]
##                 mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Hornet 4 Drive 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Valiant        18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
mtcars[mtcars$mpg>20,]
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Merc 240D      24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230       22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona  21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
mtcars[mtcars$mpg>20 & mtcars$mpg<30,]
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Merc 240D      24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230       22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Toyota Corona  21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
#Whats the difference ie the class
mtcars$mpg
##  [1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4
## [16] 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7
## [31] 15.0 21.4
mtcars[[1]]
##  [1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4
## [16] 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7
## [31] 15.0 21.4
mtcars[1]
##                      mpg
## Mazda RX4           21.0
## Mazda RX4 Wag       21.0
## Datsun 710          22.8
## Hornet 4 Drive      21.4
## Hornet Sportabout   18.7
## Valiant             18.1
## Duster 360          14.3
## Merc 240D           24.4
## Merc 230            22.8
## Merc 280            19.2
## Merc 280C           17.8
## Merc 450SE          16.4
## Merc 450SL          17.3
## Merc 450SLC         15.2
## Cadillac Fleetwood  10.4
## Lincoln Continental 10.4
## Chrysler Imperial   14.7
## Fiat 128            32.4
## Honda Civic         30.4
## Toyota Corolla      33.9
## Toyota Corona       21.5
## Dodge Challenger    15.5
## AMC Javelin         15.2
## Camaro Z28          13.3
## Pontiac Firebird    19.2
## Fiat X1-9           27.3
## Porsche 914-2       26.0
## Lotus Europa        30.4
## Ford Pantera L      15.8
## Ferrari Dino        19.7
## Maserati Bora       15.0
## Volvo 142E          21.4
mtcars['mpg']
##                      mpg
## Mazda RX4           21.0
## Mazda RX4 Wag       21.0
## Datsun 710          22.8
## Hornet 4 Drive      21.4
## Hornet Sportabout   18.7
## Valiant             18.1
## Duster 360          14.3
## Merc 240D           24.4
## Merc 230            22.8
## Merc 280            19.2
## Merc 280C           17.8
## Merc 450SE          16.4
## Merc 450SL          17.3
## Merc 450SLC         15.2
## Cadillac Fleetwood  10.4
## Lincoln Continental 10.4
## Chrysler Imperial   14.7
## Fiat 128            32.4
## Honda Civic         30.4
## Toyota Corolla      33.9
## Toyota Corona       21.5
## Dodge Challenger    15.5
## AMC Javelin         15.2
## Camaro Z28          13.3
## Pontiac Firebird    19.2
## Fiat X1-9           27.3
## Porsche 914-2       26.0
## Lotus Europa        30.4
## Ford Pantera L      15.8
## Ferrari Dino        19.7
## Maserati Bora       15.0
## Volvo 142E          21.4
# Attach detach alternative with
# with(data, expression)
# with is a general purpose wrapper to let you use any function as if it had a data argumen
# data For the default with method this may be an environment, a list, a data frame, or an integer
# example applying a t-test to a data frame mydata with(mydata, t.test(y ~ group))
# R provides numerous functions for the handling of data. 
# Similar functions to with and within are, e.g., attach & detach or transform
with(mtcars, mean(mpg))
## [1] 20.09062
#what??? i can use mean(mtcars$mpg)

# this is obviously annoying
mod = lm(mtcars$mpg ~ mtcars$cyl + mtcars$disp + mtcars$wt)

# this is nicer
mod = lm(mpg ~ cyl + disp + wt, data = mtcars)

# However, if (for some strange reason) we wanted to find the mean of cyl + disp + wt, 
# there is a problem because mean doesn't have a data argument like lm does. 
# This is the issue that with addresses:

# without with(), we would be stuck here:
z1 = sum(mtcars$cyl + mtcars$disp + mtcars$wt)
z1
## [1] 7684.052
# using with(), we can clean this up:
z2 = with(mtcars, sum(cyl + disp + wt))
z2
## [1] 7684.052
#within() function can add a calculated column
# with(data,expression)
# within(data,expression)

# data frame creation
df2 <- data.frame(x=1:5,y=2:6)
df2
##   x y
## 1 1 2
## 2 2 3
## 3 3 4
## 4 4 5
## 5 5 6
# with function in R
with(df2, {z <- x + y; z; df} )
## function (x, df1, df2, ncp, log = FALSE) 
## {
##     if (missing(ncp)) 
##         .Call(C_df, x, df1, df2, log)
##     else .Call(C_dnf, x, df1, df2, ncp, log)
## }
## <bytecode: 0x00000000158d9948>
## <environment: namespace:stats>
#If you didnot understand the above 
with(df2,x+y)#display to screen
## [1]  3  5  7  9 11
df2#Lets check if something has happened to the dataframe
##   x y
## 1 1 2
## 2 2 3
## 3 3 4
## 4 4 5
## 5 5 6
with(df2,z <- x+y)#Instead of display to screen store into variable z
#z #This is where the output should have gone but the scope is outside the function
with(df2,{z <- x+y;z})#See that d is available only inside the with function
## [1]  3  5  7  9 11
#So if you want to use it to add a column to df then
df3<-df2#lets create a copy of df2 object
df3#has two columns x,y
##   x y
## 1 1 2
## 2 2 3
## 3 3 4
## 4 4 5
## 5 5 6
df3$z<-with(df2,x+y)#This is how we add a third column using with
df3#look maa...df3 changed
##   x y  z
## 1 1 2  3
## 2 2 3  5
## 3 3 4  7
## 4 4 5  9
## 5 5 6 11
df3<-df2#lets reset
df4<-within(df3,z<-x+y)#


#the stack
BOD
##   Time demand
## 1    1    8.3
## 2    2   10.3
## 3    3   19.0
## 4    4   16.0
## 5    5   15.6
## 6    7   19.8
stack(BOD)
##    values    ind
## 1     1.0   Time
## 2     2.0   Time
## 3     3.0   Time
## 4     4.0   Time
## 5     5.0   Time
## 6     7.0   Time
## 7     8.3 demand
## 8    10.3 demand
## 9    19.0 demand
## 10   16.0 demand
## 11   15.6 demand
## 12   19.8 demand
unstack(BOD)
##      res
## 8.3    1
## 10.3   2
## 15.6   5
## 16     4
## 19     3
## 19.8   7
PlantGrowth
##    weight group
## 1    4.17  ctrl
## 2    5.58  ctrl
## 3    5.18  ctrl
## 4    6.11  ctrl
## 5    4.50  ctrl
## 6    4.61  ctrl
## 7    5.17  ctrl
## 8    4.53  ctrl
## 9    5.33  ctrl
## 10   5.14  ctrl
## 11   4.81  trt1
## 12   4.17  trt1
## 13   4.41  trt1
## 14   3.59  trt1
## 15   5.87  trt1
## 16   3.83  trt1
## 17   6.03  trt1
## 18   4.89  trt1
## 19   4.32  trt1
## 20   4.69  trt1
## 21   6.31  trt2
## 22   5.12  trt2
## 23   5.54  trt2
## 24   5.50  trt2
## 25   5.37  trt2
## 26   5.29  trt2
## 27   4.92  trt2
## 28   6.15  trt2
## 29   5.80  trt2
## 30   5.26  trt2
stack(PlantGrowth)
## Warning in stack.data.frame(PlantGrowth): non-vector columns will be ignored
##    values    ind
## 1    4.17 weight
## 2    5.58 weight
## 3    5.18 weight
## 4    6.11 weight
## 5    4.50 weight
## 6    4.61 weight
## 7    5.17 weight
## 8    4.53 weight
## 9    5.33 weight
## 10   5.14 weight
## 11   4.81 weight
## 12   4.17 weight
## 13   4.41 weight
## 14   3.59 weight
## 15   5.87 weight
## 16   3.83 weight
## 17   6.03 weight
## 18   4.89 weight
## 19   4.32 weight
## 20   4.69 weight
## 21   6.31 weight
## 22   5.12 weight
## 23   5.54 weight
## 24   5.50 weight
## 25   5.37 weight
## 26   5.29 weight
## 27   4.92 weight
## 28   6.15 weight
## 29   5.80 weight
## 30   5.26 weight
unstack(PlantGrowth)#To sepearte columns
##    ctrl trt1 trt2
## 1  4.17 4.81 6.31
## 2  5.58 4.17 5.12
## 3  5.18 4.41 5.54
## 4  6.11 3.59 5.50
## 5  4.50 5.87 5.37
## 6  4.61 3.83 5.29
## 7  5.17 6.03 4.92
## 8  4.53 4.89 6.15
## 9  5.33 4.32 5.80
## 10 5.14 4.69 5.26
#Select and save
mtdf<-mtcars[1:6,]
mtdf#useful for performing operations on a subset without touching the original dataset
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
#using subset function subset(dataset,condition)
sunflower <- subset(chickwts, chickwts$feed == "sunflower")
sunflower # Lists elements in the subset
##    weight      feed
## 37    423 sunflower
## 38    340 sunflower
## 39    392 sunflower
## 40    339 sunflower
## 41    341 sunflower
## 42    226 sunflower
## 43    320 sunflower
## 44    295 sunflower
## 45    334 sunflower
## 46    322 sunflower
## 47    297 sunflower
## 48    318 sunflower
sunflower <- subset(chickwts, chickwts$weight > 300)
sunflower # Lists elements in the subset
##    weight      feed
## 11    309   linseed
## 26    327   soybean
## 27    329   soybean
## 31    316   soybean
## 37    423 sunflower
## 38    340 sunflower
## 39    392 sunflower
## 40    339 sunflower
## 41    341 sunflower
## 43    320 sunflower
## 45    334 sunflower
## 46    322 sunflower
## 48    318 sunflower
## 49    325  meatmeal
## 51    303  meatmeal
## 52    315  meatmeal
## 53    380  meatmeal
## 58    344  meatmeal
## 60    368    casein
## 61    390    casein
## 62    379    casein
## 64    404    casein
## 65    318    casein
## 66    352    casein
## 67    359    casein
## 71    332    casein
#Dealing with outliers
boxplot(sunflower$weight)

boxplot.stats(sunflower$weight)
## $stats
## [1] 303.0 320.0 336.5 368.0 423.0
## 
## $n
## [1] 26
## 
## $conf
## [1] 321.6266 351.3734
## 
## $out
## numeric(0)
boxplot.stats(sunflower$weight)$out
## numeric(0)
#IQR(x, na.rm = FALSE, type = 7)#Where type 1 to 9 are different algorithms to calculate
# Calculating lower inner fence
fivenum(sunflower$weight)[2] - 1.5*IQR(sunflower$weight, type = 2) 
## [1] 248
# Calculating upper inner fence
fivenum(sunflower$weight)[4] + 1.5*IQR(sunflower$weight, type = 2) 
## [1] 440
fivenum(sunflower$weight)
## [1] 303.0 320.0 336.5 368.0 423.0
#The minimum value, 226, is smaller than the calculated lower inner fence of 258, 
#and the maximum value, 423 is larger than the upper inner fence, 390. 
#This means that there must be at least one outlier on either end.

sunflower_lower <- subset(sunflower, sunflower$weight < 258)
sunflower_lower # Lists all elements below lower inner fence
## [1] weight feed  
## <0 rows> (or 0-length row.names)
sunflower_upper <- subset(sunflower, sunflower$weight > 390)
sunflower_upper # Lists all elements above upper inner fence
##    weight      feed
## 37    423 sunflower
## 39    392 sunflower
## 64    404    casein
#Descriptive statistics
summary(mtcars)
##       mpg             cyl             disp             hp       
##  Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
##  1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
##  Median :19.20   Median :6.000   Median :196.3   Median :123.0  
##  Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
##  3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
##  Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
##       drat             wt             qsec             vs        
##  Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
##  1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
##  Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
##  Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
##  3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
##  Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
##        am              gear            carb      
##  Min.   :0.0000   Min.   :3.000   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
##  Median :0.0000   Median :4.000   Median :2.000  
##  Mean   :0.4062   Mean   :3.688   Mean   :2.812  
##  3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :1.0000   Max.   :5.000   Max.   :8.000
summary(mtdf)
##       mpg             cyl         disp             hp             drat      
##  Min.   :18.10   Min.   :4   Min.   :108.0   Min.   : 93.0   Min.   :2.760  
##  1st Qu.:19.27   1st Qu.:6   1st Qu.:160.0   1st Qu.:106.2   1st Qu.:3.098  
##  Median :21.00   Median :6   Median :192.5   Median :110.0   Median :3.500  
##  Mean   :20.50   Mean   :6   Mean   :211.8   Mean   :117.2   Mean   :3.440  
##  3rd Qu.:21.30   3rd Qu.:6   3rd Qu.:249.8   3rd Qu.:110.0   3rd Qu.:3.888  
##  Max.   :22.80   Max.   :8   Max.   :360.0   Max.   :175.0   Max.   :3.900  
##        wt             qsec             vs            am           gear    
##  Min.   :2.320   Min.   :16.46   Min.   :0.0   Min.   :0.0   Min.   :3.0  
##  1st Qu.:2.684   1st Qu.:17.02   1st Qu.:0.0   1st Qu.:0.0   1st Qu.:3.0  
##  Median :3.045   Median :17.82   Median :0.5   Median :0.5   Median :3.5  
##  Mean   :2.988   Mean   :18.13   Mean   :0.5   Mean   :0.5   Mean   :3.5  
##  3rd Qu.:3.384   3rd Qu.:19.23   3rd Qu.:1.0   3rd Qu.:1.0   3rd Qu.:4.0  
##  Max.   :3.460   Max.   :20.22   Max.   :1.0   Max.   :1.0   Max.   :4.0  
##       carb      
##  Min.   :1.000  
##  1st Qu.:1.000  
##  Median :1.500  
##  Mean   :2.167  
##  3rd Qu.:3.500  
##  Max.   :4.000
mean(mtcars)#Error
## Warning in mean.default(mtcars): argument is not numeric or logical: returning
## NA
## [1] NA
mean(mtcars$mpg)
## [1] 20.09062
min(mtcars$mpg)
## [1] 10.4
max(mtcars$mpg)
## [1] 33.9
table(iris$Species)
## 
##     setosa versicolor  virginica 
##         50         50         50
table(mtcars$gear)
## 
##  3  4  5 
## 15 12  5
table(mtcars$gear,mtcars$cyl)
##    
##      4  6  8
##   3  1  2 12
##   4  8  4  0
##   5  2  1  2
median(mtcars$mpg)#no mode is there
## [1] 19.2
length(mtcars$mpg)#for count
## [1] 32
sd(mtcars$mpg)
## [1] 6.026948
var(mtcars$mpg)
## [1] 36.3241
quantile(mtcars$mpg)
##     0%    25%    50%    75%   100% 
## 10.400 15.425 19.200 22.800 33.900
mad(mtcars$mpg)
## [1] 5.41149
#kurtosis and skewness is not there m is mean s is sd and n is count
#skew <- sum((x-m)^3/s^3)/n
#kurt <- sum((x-m)^4/s^4)/n - 3 
sum(mtcars$wt)
## [1] 102.952
#Descriptives on multiple columns or rows at a time
#Syntax apply(dataset,marginie row=1,col=2,function without ())

apply(mtcars,2,sum)#for rows substitute 1 instead of 2
##      mpg      cyl     disp       hp     drat       wt     qsec       vs 
##  642.900  198.000 7383.100 4694.000  115.090  102.952  571.160   14.000 
##       am     gear     carb 
##   13.000  118.000   90.000
#Reshaping the data stack unstack transform transpose

#stack and unstack
#Stacking vectors concatenates multiple vectors into a single vector along with a factor 
#indicating where each observation originated using stack() function
#Syntax stack(dataframe)

#Example
a<-c(3,4,5)
b<-c(6,7,8)
df1<-data.frame(a,b)
df1#this is unstacked
##   a b
## 1 3 6
## 2 4 7
## 3 5 8
#Lets stack
stack(df1)#first is values then the group ie column name
##   values ind
## 1      3   a
## 2      4   a
## 3      5   a
## 4      6   b
## 5      7   b
## 6      8   b
stdf1<-stack(df1)
class(stdf1)#dataframe output from dataframe input
## [1] "data.frame"
#Unstacking reverses this operation using unstack() function
v<-c(3,4,5,6,7,8)
g<-c("a","a","a","b","b","b")
df2<-data.frame(v,g)
df2#this is stacked
##   v g
## 1 3 a
## 2 4 a
## 3 5 a
## 4 6 b
## 5 7 b
## 6 8 b
#Lets Unstack
unstack(df2)#Any doubts
##   a b
## 1 3 6
## 2 4 7
## 3 5 8
usdf2<-unstack(df2)
class(usdf2)#dataframe output from dataframe input
## [1] "data.frame"
df3<-data.frame(g,v)
df3#this is not a useful stack
##   g v
## 1 a 3
## 2 a 4
## 3 a 5
## 4 b 6
## 5 b 7
## 6 b 8
unstack(df3)# Therefore always first column numbers and second column group
##   res
## 3   a
## 4   a
## 5   a
## 6   b
## 7   b
## 8   b
usdf3<-unstack(df3)
class(usdf3)#input and output are both dataframe but the format is not good
## [1] "data.frame"
#Observe the difference in structure between unstacked df2 and df3
str(usdf2)
## 'data.frame':    3 obs. of  2 variables:
##  $ a: num  3 4 5
##  $ b: num  6 7 8
str(usdf3)
## 'data.frame':    6 obs. of  1 variable:
##  $ res: chr  "a" "a" "a" "b" ...
#use numbers on first column and group type in second column
str(df2)
## 'data.frame':    6 obs. of  2 variables:
##  $ v: num  3 4 5 6 7 8
##  $ g: chr  "a" "a" "a" "b" ...
str(df3)
## 'data.frame':    6 obs. of  2 variables:
##  $ g: chr  "a" "a" "a" "b" ...
##  $ v: num  3 4 5 6 7 8
head(PlantGrowth)#good example for stacked
##   weight group
## 1   4.17  ctrl
## 2   5.58  ctrl
## 3   5.18  ctrl
## 4   6.11  ctrl
## 5   4.50  ctrl
## 6   4.61  ctrl
class(PlantGrowth)#dataframe input
## [1] "data.frame"
#lets unstack
unstack(PlantGrowth)
##    ctrl trt1 trt2
## 1  4.17 4.81 6.31
## 2  5.58 4.17 5.12
## 3  5.18 4.41 5.54
## 4  6.11 3.59 5.50
## 5  4.50 5.87 5.37
## 6  4.61 3.83 5.29
## 7  5.17 6.03 4.92
## 8  4.53 4.89 6.15
## 9  5.33 4.32 5.80
## 10 5.14 4.69 5.26
usdf4<-unstack(PlantGrowth)
class(usdf4)
## [1] "data.frame"
head(chickwts)#good example for stacked
##   weight      feed
## 1    179 horsebean
## 2    160 horsebean
## 3    136 horsebean
## 4    227 horsebean
## 5    217 horsebean
## 6    168 horsebean
class(chickwts)#dataframe ie good input
## [1] "data.frame"
#lets unstack
unstack(chickwts)#oops
## $casein
##  [1] 368 390 379 260 404 318 352 359 216 222 283 332
## 
## $horsebean
##  [1] 179 160 136 227 217 168 108 124 143 140
## 
## $linseed
##  [1] 309 229 181 141 260 203 148 169 213 257 244 271
## 
## $meatmeal
##  [1] 325 257 303 315 380 153 263 242 206 344 258
## 
## $soybean
##  [1] 243 230 248 327 329 250 193 271 316 267 199 171 158 248
## 
## $sunflower
##  [1] 423 340 392 339 341 226 320 295 334 322 297 318
usdf4<-unstack(chickwts)
class(usdf4)#Be careful 
## [1] "list"
#Why list
table(chickwts$feed)
## 
##    casein horsebean   linseed  meatmeal   soybean sunflower 
##        12        10        12        11        14        12
table(PlantGrowth$group)#Equal length should be there
## 
## ctrl trt1 trt2 
##   10   10   10
#transform converts object to a dataframe useful for converting a matrix else useless
tdf1<-transform(df1)
identical(tdf1,df1)
## [1] TRUE
tstdf1<-transform(stdf1)
identical(tstdf1,stdf1)
## [1] TRUE
tdf2<-transform(df2)
identical(tdf2,df2)
## [1] TRUE
tusdf2<-transform(usdf2)
identical(tusdf2,usdf2)
## [1] TRUE
tdf3<-transform(df3)
identical(tdf3,df3)
## [1] TRUE
tusdf3<-transform(usdf3)

#transpose will rotate the dataframe ie rows to columns and columns to rows and output a matrix 
df1
##   a b
## 1 3 6
## 2 4 7
## 3 5 8
t(df1)
##   [,1] [,2] [,3]
## a    3    4    5
## b    6    7    8
class(t(df1))
## [1] "matrix" "array"
stdf1
##   values ind
## 1      3   a
## 2      4   a
## 3      5   a
## 4      6   b
## 5      7   b
## 6      8   b
t(stdf1)
##        [,1] [,2] [,3] [,4] [,5] [,6]
## values "3"  "4"  "5"  "6"  "7"  "8" 
## ind    "a"  "a"  "a"  "b"  "b"  "b"
class(t(stdf1))
## [1] "matrix" "array"
t(df2)
##   [,1] [,2] [,3] [,4] [,5] [,6]
## v "3"  "4"  "5"  "6"  "7"  "8" 
## g "a"  "a"  "a"  "b"  "b"  "b"
t(usdf2)
##   [,1] [,2] [,3]
## a    3    4    5
## b    6    7    8
t(df3)
##   [,1] [,2] [,3] [,4] [,5] [,6]
## g "a"  "a"  "a"  "b"  "b"  "b" 
## v "3"  "4"  "5"  "6"  "7"  "8"
t(usdf3)
##     3   4   5   6   7   8  
## res "a" "a" "a" "b" "b" "b"
#reshape is out of scope to cover


#Group wise descriptive statistics for dataset containing group type in one column and value in other column

#by(quantitative_variable, factor variable, function)

by(mtcars$mpg,mtcars$gear,mean)#1 output class is by
## mtcars$gear: 3
## [1] 16.10667
## ------------------------------------------------------------ 
## mtcars$gear: 4
## [1] 24.53333
## ------------------------------------------------------------ 
## mtcars$gear: 5
## [1] 21.38
by(mtcars$mpg,list(mtcars$gear),mean)#2 output class is by
## : 3
## [1] 16.10667
## ------------------------------------------------------------ 
## : 4
## [1] 24.53333
## ------------------------------------------------------------ 
## : 5
## [1] 21.38
#Dataframe output for grouping
#aggregate(quantitative_variable, list(“Group Heading” = grouping_elements), function)

#aggregate(mtcars$mpg,mtcars$gear,mean)#take 1 and modify error
aggregate(mtcars$mpg,list(mtcars$gear),mean)#take 2 and modify
##   Group.1        x
## 1       3 16.10667
## 2       4 24.53333
## 3       5 21.38000
#let us change the heading
aggregate(PlantGrowth$weight, list("Type of Group" = PlantGrowth$group), mean)
##   Type of Group     x
## 1          ctrl 5.032
## 2          trt1 4.661
## 3          trt2 5.526
aggregate(PlantGrowth$weight, list("Type of Group" = PlantGrowth$group), summary)
##   Type of Group x.Min. x.1st Qu. x.Median x.Mean x.3rd Qu. x.Max.
## 1          ctrl 4.1700    4.5500   5.1550 5.0320    5.2925 6.1100
## 2          trt1 3.5900    4.2075   4.5500 4.6610    4.8700 6.0300
## 3          trt2 4.9200    5.2675   5.4350 5.5260    5.7350 6.3100
#Group wise statistics for unstacked dataset
print(PlantGrowth)#this is a stacked dataset and we can use by or aggregate
##    weight group
## 1    4.17  ctrl
## 2    5.58  ctrl
## 3    5.18  ctrl
## 4    6.11  ctrl
## 5    4.50  ctrl
## 6    4.61  ctrl
## 7    5.17  ctrl
## 8    4.53  ctrl
## 9    5.33  ctrl
## 10   5.14  ctrl
## 11   4.81  trt1
## 12   4.17  trt1
## 13   4.41  trt1
## 14   3.59  trt1
## 15   5.87  trt1
## 16   3.83  trt1
## 17   6.03  trt1
## 18   4.89  trt1
## 19   4.32  trt1
## 20   4.69  trt1
## 21   6.31  trt2
## 22   5.12  trt2
## 23   5.54  trt2
## 24   5.50  trt2
## 25   5.37  trt2
## 26   5.29  trt2
## 27   4.92  trt2
## 28   6.15  trt2
## 29   5.80  trt2
## 30   5.26  trt2
upg<-unstack(PlantGrowth)
print(upg)#This is unstacked dataset two methods(1)convert to stack and use by or aggregate (2)without converting, use apply
##    ctrl trt1 trt2
## 1  4.17 4.81 6.31
## 2  5.58 4.17 5.12
## 3  5.18 4.41 5.54
## 4  6.11 3.59 5.50
## 5  4.50 5.87 5.37
## 6  4.61 3.83 5.29
## 7  5.17 6.03 4.92
## 8  4.53 4.89 6.15
## 9  5.33 4.32 5.80
## 10 5.14 4.69 5.26
#Method 1 convert to stack and use by or aggregate
stupg<-stack(upg)#method 1 stack then use by or aggregate
by(stupg$values,stupg$ind,mean)#if you want by class output
## stupg$ind: ctrl
## [1] 5.032
## ------------------------------------------------------------ 
## stupg$ind: trt1
## [1] 4.661
## ------------------------------------------------------------ 
## stupg$ind: trt2
## [1] 5.526
aggregate(stupg$values,list(stupg$ind),mean)#if you want a dataframe class output
##   Group.1     x
## 1    ctrl 5.032
## 2    trt1 4.661
## 3    trt2 5.526
#Method 2 without converting, use apply
apply(upg,2,mean)
##  ctrl  trt1  trt2 
## 5.032 4.661 5.526
#Exercise: Using InsectSprays, perform the stacking, unstack, group after checking for the required conditions
InsectSprays
##    count spray
## 1     10     A
## 2      7     A
## 3     20     A
## 4     14     A
## 5     14     A
## 6     12     A
## 7     10     A
## 8     23     A
## 9     17     A
## 10    20     A
## 11    14     A
## 12    13     A
## 13    11     B
## 14    17     B
## 15    21     B
## 16    11     B
## 17    16     B
## 18    14     B
## 19    17     B
## 20    17     B
## 21    19     B
## 22    21     B
## 23     7     B
## 24    13     B
## 25     0     C
## 26     1     C
## 27     7     C
## 28     2     C
## 29     3     C
## 30     1     C
## 31     2     C
## 32     1     C
## 33     3     C
## 34     0     C
## 35     1     C
## 36     4     C
## 37     3     D
## 38     5     D
## 39    12     D
## 40     6     D
## 41     4     D
## 42     3     D
## 43     5     D
## 44     5     D
## 45     5     D
## 46     5     D
## 47     2     D
## 48     4     D
## 49     3     E
## 50     5     E
## 51     3     E
## 52     5     E
## 53     3     E
## 54     6     E
## 55     1     E
## 56     1     E
## 57     3     E
## 58     2     E
## 59     6     E
## 60     4     E
## 61    11     F
## 62     9     F
## 63    15     F
## 64    22     F
## 65    15     F
## 66    16     F
## 67    13     F
## 68    10     F
## 69    26     F
## 70    26     F
## 71    24     F
## 72    13     F
class(InsectSprays)#Condition 1 dataframe
## [1] "data.frame"
table(InsectSprays$spray)# Condition 2 equal length
## 
##  A  B  C  D  E  F 
## 12 12 12 12 12 12
#Quiz : Find the average mileage for 4 gear cars 
x = c(1,3,5,7,9)
y = c(2,3,5,7,11,13)
x+1
## [1]  2  4  6  8 10
y*2
## [1]  4  6 10 14 22 26
length(x)
## [1] 5
length(y)
## [1] 6
z<-c(5,3,7,2,8)
sort(z)
## [1] 2 3 5 7 8
sort(z,T)
## [1] 8 7 5 3 2
order(z)
## [1] 4 2 1 3 5
x + y
## Warning in x + y: longer object length is not a multiple of shorter object
## length
## [1]  3  6 10 14 20 14
sum(x>5) #Boolean
## [1] 2
sum(x[x>5])
## [1] 16
sum(x>5 | x< 3) # read | as ’or’, & and ’and’
## [1] 3
sum(y>3 & y< 13)
## [1] 3
sum(y>3 & x< 13)#Boolean 
## Warning in y > 3 & x < 13: longer object length is not a multiple of shorter
## object length
## [1] 4
y[3]
## [1] 5
y[-3]
## [1]  2  3  7 11 13
y[x]
## [1]  2  5 11 NA NA
y[y>=7]
## [1]  7 11 13
#Please check functions for generating random data one example is given here
rnorm(10,5,2)
##  [1] 5.272598 5.143040 6.734750 1.728973 5.646332 8.406300 5.569295 7.037701
##  [9] 1.660113 6.400191
#Create 15 random numbers that are normally distributed with mean 10 and s.d. 5. 
#Find a 1-sample t-test at the 95% level to check average of 3 # zscores``