Problem 1

1.(a)

rainfall=read.table("rainfall_india (2).txt")
rainfall
##      V1  V2  V3  V4  V5   V6   V7   V8   V9  V10  V11 V12 V13
## 1  1990  51 257 237 300 1078 1721 2631 2833 1901 1008 335  88
## 2  1991  88  83 138 296  509 1808 2556 2328 1153  609 355 131
## 3  1992  61 101  40 167  484 1210 2248 2803 1586  656 495  75
## 4  1993  27 165 182 278  664 1840 2807 2201 2120  890 292 220
## 5  1994 136 197 141 373  394 2153 3165 2653 1411  858 332  40
## 6  1995 274 135 192 192  860 1256 2768 2178 1701  841 393  59
## 7  1996 129 171 135 259  394 1882 2443 2661 1538  952 161 159
## 8  1997 106  38 146 399  428 1756 2674 2621 1655  753 574 601
## 9  1998 133 148 264 296  481 1464 2542 2416 2090 1155 478 108
## 10 1999  45 127  35 117  983 1707 2528 2066 1904 1238 168  40

1.(b)

names(rainfall)=c("Year","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
rownames(rainfall)=1990:1999
rainfall
##      Year Jan Feb Mar Apr  May  Jun  Jul  Aug  Sep  Oct Nov Dec
## 1990 1990  51 257 237 300 1078 1721 2631 2833 1901 1008 335  88
## 1991 1991  88  83 138 296  509 1808 2556 2328 1153  609 355 131
## 1992 1992  61 101  40 167  484 1210 2248 2803 1586  656 495  75
## 1993 1993  27 165 182 278  664 1840 2807 2201 2120  890 292 220
## 1994 1994 136 197 141 373  394 2153 3165 2653 1411  858 332  40
## 1995 1995 274 135 192 192  860 1256 2768 2178 1701  841 393  59
## 1996 1996 129 171 135 259  394 1882 2443 2661 1538  952 161 159
## 1997 1997 106  38 146 399  428 1756 2674 2621 1655  753 574 601
## 1998 1998 133 148 264 296  481 1464 2542 2416 2090 1155 478 108
## 1999 1999  45 127  35 117  983 1707 2528 2066 1904 1238 168  40

1.(c)

summary(rainfall)
##       Year           Jan             Feb             Mar             Apr       
##  Min.   :1990   Min.   : 27.0   Min.   : 38.0   Min.   : 35.0   Min.   :117.0  
##  1st Qu.:1992   1st Qu.: 53.5   1st Qu.:107.5   1st Qu.:135.8   1st Qu.:208.8  
##  Median :1994   Median : 97.0   Median :141.5   Median :143.5   Median :287.0  
##  Mean   :1994   Mean   :105.0   Mean   :142.2   Mean   :151.0   Mean   :267.7  
##  3rd Qu.:1997   3rd Qu.:132.0   3rd Qu.:169.5   3rd Qu.:189.5   3rd Qu.:299.0  
##  Max.   :1999   Max.   :274.0   Max.   :257.0   Max.   :264.0   Max.   :399.0  
##       May              Jun            Jul            Aug            Sep      
##  Min.   : 394.0   Min.   :1210   Min.   :2248   Min.   :2066   Min.   :1153  
##  1st Qu.: 441.2   1st Qu.:1525   1st Qu.:2532   1st Qu.:2233   1st Qu.:1550  
##  Median : 496.5   Median :1738   Median :2594   Median :2518   Median :1678  
##  Mean   : 627.5   Mean   :1680   Mean   :2636   Mean   :2476   Mean   :1706  
##  3rd Qu.: 811.0   3rd Qu.:1832   3rd Qu.:2744   3rd Qu.:2659   3rd Qu.:1903  
##  Max.   :1078.0   Max.   :2153   Max.   :3165   Max.   :2833   Max.   :2120  
##       Oct            Nov             Dec       
##  Min.   : 609   Min.   :161.0   Min.   : 40.0  
##  1st Qu.: 775   1st Qu.:302.0   1st Qu.: 63.0  
##  Median : 874   Median :345.0   Median : 98.0  
##  Mean   : 896   Mean   :358.3   Mean   :152.1  
##  3rd Qu.: 994   3rd Qu.:456.8   3rd Qu.:152.0  
##  Max.   :1238   Max.   :574.0   Max.   :601.0

1.(d)

rainfall_matrix=data.matrix(rainfall[,2:13])
rainfall_matrix
##      Jan Feb Mar Apr  May  Jun  Jul  Aug  Sep  Oct Nov Dec
## 1990  51 257 237 300 1078 1721 2631 2833 1901 1008 335  88
## 1991  88  83 138 296  509 1808 2556 2328 1153  609 355 131
## 1992  61 101  40 167  484 1210 2248 2803 1586  656 495  75
## 1993  27 165 182 278  664 1840 2807 2201 2120  890 292 220
## 1994 136 197 141 373  394 2153 3165 2653 1411  858 332  40
## 1995 274 135 192 192  860 1256 2768 2178 1701  841 393  59
## 1996 129 171 135 259  394 1882 2443 2661 1538  952 161 159
## 1997 106  38 146 399  428 1756 2674 2621 1655  753 574 601
## 1998 133 148 264 296  481 1464 2542 2416 2090 1155 478 108
## 1999  45 127  35 117  983 1707 2528 2066 1904 1238 168  40
cat("average of all rainfall data =", mean(rainfall_matrix))
## average of all rainfall data = 933.1333
cat("STD of all rainfall data =", sd(rainfall_matrix))
## STD of all rainfall data = 929.2183
cat("median of all rainfall data =", median(rainfall_matrix))
## median of all rainfall data = 479.5
cat("maximum of all rainfall data =", max(rainfall_matrix))
## maximum of all rainfall data = 3165
cat("minimum of all rainfall data =", min(rainfall_matrix))
## minimum of all rainfall data = 27

1.(e)

annual=rowSums(rainfall[,2:13])
annual
##  1990  1991  1992  1993  1994  1995  1996  1997  1998  1999 
## 12440 10054  9926 11686 11853 10849 10884 11751 11575 10958

1.(f)

rainfall=cbind(rainfall,Annual=annual)
rainfall
##      Year Jan Feb Mar Apr  May  Jun  Jul  Aug  Sep  Oct Nov Dec Annual
## 1990 1990  51 257 237 300 1078 1721 2631 2833 1901 1008 335  88  12440
## 1991 1991  88  83 138 296  509 1808 2556 2328 1153  609 355 131  10054
## 1992 1992  61 101  40 167  484 1210 2248 2803 1586  656 495  75   9926
## 1993 1993  27 165 182 278  664 1840 2807 2201 2120  890 292 220  11686
## 1994 1994 136 197 141 373  394 2153 3165 2653 1411  858 332  40  11853
## 1995 1995 274 135 192 192  860 1256 2768 2178 1701  841 393  59  10849
## 1996 1996 129 171 135 259  394 1882 2443 2661 1538  952 161 159  10884
## 1997 1997 106  38 146 399  428 1756 2674 2621 1655  753 574 601  11751
## 1998 1998 133 148 264 296  481 1464 2542 2416 2090 1155 478 108  11575
## 1999 1999  45 127  35 117  983 1707 2528 2066 1904 1238 168  40  10958

1.(g)

rainfall_1990 = rainfall[1,2:13]
logical_500   = rainfall_1990>500
logical_500
##        Jan   Feb   Mar   Apr  May  Jun  Jul  Aug  Sep  Oct   Nov   Dec
## 1990 FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE
sum(rainfall_1990[logical_500])
## [1] 11172

1.(h)

avg_col = apply(rainfall[,2:14],2,mean)
avg_col
##     Jan     Feb     Mar     Apr     May     Jun     Jul     Aug     Sep     Oct 
##   105.0   142.2   151.0   267.7   627.5  1679.7  2636.2  2476.0  1705.9   896.0 
##     Nov     Dec  Annual 
##   358.3   152.1 11197.6

1.(i)

std_col = apply(rainfall[,2:14],2,sd)
std_col
##       Jan       Feb       Mar       Apr       May       Jun       Jul       Aug 
##  71.26476  61.38005  73.88730  88.02531 255.96452 290.98188 245.55325 274.66950 
##       Sep       Oct       Nov       Dec    Annual 
## 304.44209 201.28697 133.96853 167.46904 807.07885

1.(j)

rainfall = rbind(rainfall,c("NA",avg_col),c("NA",std_col))
rownames(rainfall) = c(1990:1999,"Average","STD")
rainfall
##         Year              Jan              Feb              Mar
## 1990    1990               51              257              237
## 1991    1991               88               83              138
## 1992    1992               61              101               40
## 1993    1993               27              165              182
## 1994    1994              136              197              141
## 1995    1995              274              135              192
## 1996    1996              129              171              135
## 1997    1997              106               38              146
## 1998    1998              133              148              264
## 1999    1999               45              127               35
## Average   NA              105            142.2              151
## STD       NA 71.2647645521029 61.3800546685249 73.8873015702518
##                      Apr              May              Jun              Jul
## 1990                 300             1078             1721             2631
## 1991                 296              509             1808             2556
## 1992                 167              484             1210             2248
## 1993                 278              664             1840             2807
## 1994                 373              394             2153             3165
## 1995                 192              860             1256             2768
## 1996                 259              394             1882             2443
## 1997                 399              428             1756             2674
## 1998                 296              481             1464             2542
## 1999                 117              983             1707             2528
## Average            267.7            627.5           1679.7           2636.2
## STD     88.0253120162352 255.964515769927 290.981881833828 245.553252880103
##                     Aug              Sep              Oct              Nov
## 1990               2833             1901             1008              335
## 1991               2328             1153              609              355
## 1992               2803             1586              656              495
## 1993               2201             2120              890              292
## 1994               2653             1411              858              332
## 1995               2178             1701              841              393
## 1996               2661             1538              952              161
## 1997               2621             1655              753              574
## 1998               2416             2090             1155              478
## 1999               2066             1904             1238              168
## Average            2476           1705.9              896            358.3
## STD     274.66949836728 304.442094475926 201.286970379219 133.968528642613
##                      Dec           Annual
## 1990                  88            12440
## 1991                 131            10054
## 1992                  75             9926
## 1993                 220            11686
## 1994                  40            11853
## 1995                  59            10849
## 1996                 159            10884
## 1997                 601            11751
## 1998                 108            11575
## 1999                  40            10958
## Average            152.1          11197.6
## STD     167.469035280489 807.078847862256

1.(k)

group = rep(0,12)
group
##  [1] 0 0 0 0 0 0 0 0 0 0 0 0
group1 = which(rainfall_1990<100 | rainfall_1990>=2500)
group2 = which(rainfall_1990>=100 & rainfall_1990<2500)
group[group1]=1
group[group2]=2
group
##  [1] 1 2 2 2 2 2 1 1 2 2 2 1