If you make a factor with year with levels including all the years that you want then use tapply eg with dat as the name of the data.frame The same applies for Month but I have not done so
dat$Yr <- factor(dat$Year, levels = c(1971:1980)) with(dat, tapply(Rain, list(Yr, Month), sum, na.rm=T)) 1 2 9 10 11 12 1971 138.5 14.1 138.3 144.4 139.8 172.7 1972 36.0 NA NA NA NA NA 1973 NA NA NA NA NA NA 1974 NA NA NA NA NA NA 1975 NA NA NA NA NA NA 1976 NA NA NA NA NA NA 1977 NA NA NA NA NA NA 1978 NA NA NA NA NA NA 1979 NA NA NA NA NA NA 1980 NA NA NA NA NA NA regards Duncan Duncan Mackay Department of Agronomy and Soil Science University of New England Armidale NSW 2351 Email: home: mac...@northnet.com.au -----Original Message----- From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On Behalf Of Hafizuddin Arshad Sent: Wednesday, 8 October 2014 12:26 To: r-help@r-project.org Subject: [R] Finding Rainfall Amount Dear R users, I have this kind of data set which is part of my data: structure(list(Year = c(1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L, 1972L), Month = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), Rain = c(33, 32.7, 10.1, 43.1, 0, 11.6, 3, 0, 0, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NA, 3.9, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 1.1, 0.1, 0.1, 0.2, 1.1, 5.5, 5, 0, 0, 0, 0, 7.5, 0, 1.5, 0, 1.1, 0.1, 2.1, 0, 0, 0, 8.4, 15.5, 5.1, 5.6, 0, 1.5, 89.9, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6.9, 0, 8.1, 1.9, 0.1, 10.3, 0.5, 3.7, 19.6, 1.6, 7.6, 1.1, 1.1, 41.2, 17.6, 0.6, 2, 0, 2.5, 0.8, 0, 0, 9, 0.3, 1.8, 0.1, 2.3, 1.2, 2.1, 0, 17.5, 7.6, 1.1, 7.8, 4, 0, 0, 0, 66.9, 0, 4.9, 0, 0, 0, 0.9, 0, 0.2, 0, 2.3, 0, 9.1, 9.6, 0, 1.6, 0.7, 0, 0, 0, 30.3, 3.1, 14.4, 0.4, 0, 1.8, 14.7, 17.3, 0, 0, 3.3, 0, 0, 0, 7.5, 0.5, 0.3, 1.2, 3.3, 0, 6.9, 16.4, 0, 5.4, 30.2, 13.9, 1.8, 0, 0, 0, 0, 0, 1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NA, 28.3, 2, 0.1, 0.1, 0.1, 0.1, 0.1, 1.8, 0.2, 2, 0, 0)), .Names = c("Year", "Month", "Rain" ), class = "data.frame", row.names = c(NA, -194L)) I would like to find the rainfall total for each month within a year. The result should be like in this form: structure(list(V1 = c(28.4, 9.2, 48.8, 185.2, 4.1, 67.6, 49.7, 21.8, 5.6, 24.2, 0.8, 32, 88.9, 61.6, 36.8, 74, 16.3, 2.6, 7.6, 149.7, 13, 65.2, 3.8, 72.1, 49, 3.8, 24.1, 4.3, 19.6, 32.3, 5.6, 54.6, 94.2, 40.7, 101.3, 0.5, 11.7, 9.9, 86.4, 24.3, 91.3, 66.5, 13.2, 0.8, 16, 24.7, 18.1, 13.5, 126.5, 18.1, 62.5, 98.9, 212.6, 19.2, 42.4, 41.6, 73.2, 15, 43.2, 43, 1.4, 167.4, 11.4, 14, 15.6, 23.4, 23.8, 104.2, 58.8, 191.6, 37.2, 121, 36.2, 5.8, 26, 13, 18.6, 63.2, 28.6, 57.8), V2 = c(53.6, 0, 73.7, 106.8, 0, 9.2, 141.6, 32.3, 3.3, 28.5, 55.1, 0, 78.5, 71.6, 50.3, 1.3, 24.7, 201.2, 7.4, 59.9, 26.5, 46, 3.6, 5.6, 93.7, 56.1, 59.8, 33.7, 70.6, 38.9, 4.8, 18.6, 7.1, 62.2, 17.6, 17.5, 13.7, 42.2, 20.6, 18.3, 1.5, 17.1, 22.6, 2, 44.6, 8.2, 8.4, 69.6, 75.9, 59.6, 35.4, 122.9, 62.1, 43.8, 39.6, 111, 1.8, 10, 76.2, 0, 43.4, 194, 8.2, 9.8, 18.2, 5, 69.4, 1.6, 51.2, 51.2, 88.6, 43.4, 11.8, 19.6, 68.2, 48.6, 6.4, 102.4, 24.5, 73), V3 = c(1.3, 0.3, 73.4, 29.5, 58.6, 6.3, 119.7, 30, 6.3, 175.5, 66.3, 14.8, 24.2, 32.7, 28.9, 29.7, 1.6, 132.6, 10.9, 67.8, 23.7, 10.4, 53.6, 15.2, 82.4, 90.2, 3.8, 52.5, 81.2, 5.6, 67.8, 1, 3.3, 85.8, 138.6, 38, 47.8, 72.5, 5.9, 39.6, 16.5, 27.8, 39.5, 9.7, 58, 11.5, 14.8, 99.3, 48.1, 33.5, 14.3, 70.9, 17.5, 58.6, 20.8, 88.2, 72.8, 20.2, 32, 131, 52.4, 17.4, 46.6, 3.8, 35.2, 102.2, 10.6, 43.2, 33.4, 101.8, 43, 53.8, 42.8, 1.6, 45.4, 7.8, 1.2, 18, 39.4, 28), V4 = c(29.5, 0, 37.8, 9.1, 123.2, 1.8, 27.2, 44.5, 33.7, 73.2, 98.2, 29.5, 99.5, 117.7, 37.3, 19.9, 47.2, 185.8, 100, 21.9, 25, 80.5, 49.1, 7.4, 47.9, 30, 41.2, 32.8, 16.5, 88.9, 99.4, 43, 47.1, 10.2, 104.7, 21.6, 46, 89.8, 60.6, 60.4, 18.6, 24.4, 134.1, 20.9, 20.3, 2.6, 63.9, 83.8, 109.2, 54.6, 36, 134.9, 168, 24.6, 10, 14, 50.4, 35.4, 7.2, 31.6, 72.2, 38, 49.6, 36.2, 33.2, 172, 143.6, 10, 122, 6.4, 10.4, 29.4, 5.8, 118.8, 17.6, 26, 15.2, 18, 36.6, 18.6 ), V5 = c(52.1, 68.4, 51.2, 20.6, 89.5, 58, 56, 37.7, 56.1, 153.7, 16.7, 58, 0, 23.7, 9.9, 40.6, 20.1, 29.7, 35.7, 4.3, 158.9, 12.2, 83.2, 28.5, 38.7, 28.7, 70.5, 38.6, 59, 100.2, 154.2, 61.7, 23.7, 67.3, 147.5, 17.5, 115.2, 12.4, 136.6, 16, 113.9, 103.5, 42.9, 48.3, 72.4, 33.6, 138.8, 67.8, 38.9, 61.8, 19.6, 51.9, 115.8, 63.8, 7.6, 78.4, 137, 30.6, 53, 55.8, 126.8, 9.2, 84.2, 61, 161.4, 111.4, 90.2, 11.2, 38.4, 32.2, 20.2, 39.8, 82, 14.6, 31.6, 36.8, 47.6, 4.6, 64.2, 24), V6 = c(65.9, 149.5, 69.4, 77.7, 102.8, 14.5, 58.1, 49.3, 37.9, 201.4, 99, 63.1, 40.9, 50.4, 105.9, 39.4, 89.1, 132, 14.2, 45.8, 104.6, 56.2, 22.6, 104.4, 58.5, 70.4, 40.8, 23.8, 31.5, 100.7, 144.4, 96.4, 45.4, 89.2, 127.5, 120.2, 18.8, 38.5, 21.3, 70.4, 94.3, 86.5, 80.5, 16.4, 77.5, 37.4, 58, 20.4, 42.5, 42.5, 11, 102.1, 19.3, 13.2, 25, 96.2, 64.8, 60.4, 170.6, 31.8, 66.8, 11.6, 68.2, 35.4, 75, 62.8, 81.2, 162.1, 55, 30.8, 101.2, 97.8, 24, 64.6, 46.2, 71, 103.3, 131.6, 33, 24.8 ), V7 = c(72.6, 87.1, 34, 71.4, 62.8, 94.7, 59.2, 29, 54.7, 62.9, 54.1, 50.3, 100.4, 95, 142.2, 26.8, 32.5, 51.2, 40.7, 63.9, 43.8, 71.8, 29.2, 49.7, 145.8, 119.1, 29.7, 78.3, 69.7, 89.2, 73, 72, 45.4, 109.6, 128.8, 60.8, 122.4, 44.3, 139.5, 64.8, 46.5, 90.9, 165.8, 53.2, 57.4, 31.8, 61.6, 134.9, 42.9, 56.1, 46, 96.7, 149.6, 110.6, 43, 31.6, 119.6, 72, 157.6, 17, 101.6, 110.2, 48.6, 191.8, 106.6, 53.2, 154.4, 95.8, 42, 147.4, 52.2, 96.8, 24.6, 76.4, 29.4, 87.6, 71.9, 73.2, 104.3, 80), V8 = c(67.6, 59.2, 108.4, 35.9, 88.2, 91.3, 22.8, 49.6, 77.9, 67.6, 91.2, 48.9, 124.6, 54.6, 85.8, 62.8, 63.3, 174.7, 32.3, 22.7, 99.9, 123.2, 4.8, 149, 66, 73.9, 37.4, 22.4, 69.5, 87.3, 66.9, 87.2, 81.5, 109.1, 47.4, 22.8, 92.4, 60.9, 77.5, 91.3, 91.9, 78.2, 39.4, 107.5, 57.9, 65.5, 76, 47.2, 145.5, 95.9, 106, 120.4, 108, 96.8, 30.2, 16.6, 54, 63, 120.6, 10, 144.2, 126.4, 160.6, 88.2, 23.4, 83.8, 110.8, 99.8, 128.8, 35.1, 18.6, 84, 80.8, 78.6, 53.8, 142.2, 67.8, 126, 19.9, 49.8), V9 = c(58.7, 35.7, 50.7, 49.3, 38.9, 22.4, 28, 79.2, 24.9, 36.7, 34.5, 94.4, 51, 87.2, 11.4, 82, 25.2, 43.8, 50, 42.5, 51, 56.3, 8.4, 29.2, 5.4, 70.7, 48.1, 63.1, 84.5, 53, 82.4, 99.1, 30.6, 74.2, 74.6, 43, 71.2, 67, 111.5, 29, 51.2, 106, 132.9, 64.6, 114.2, 32.5, 21.7, 69.1, 126.1, 42.7, 15.3, 76.7, 79.6, 93.4, 93.8, 31.6, 129, 54.6, 57.8, 45.4, 82.2, 68.8, 31.6, 63.4, 61.2, 47, 49.6, 85.8, 133.4, 125.8, 24.8, 93.8, 67.8, 135, 50.2, 57.4, 50.6, 125.4, 10.8, 23.6), V10 = c(34.5, 55.1, 61.6, 17.6, 53.7, 89.5, 69.9, 28.8, 98.6, 47.8, 45.7, 30.1, 203, 107, 32.5, 73.6, 9.7, 84.9, 3.6, 32.7, 79.1, 35.5, 69.9, 81, 20, 85.3, 127.9, 214.7, 113.1, 83, 101.1, 59.1, 41.7, 145.7, 95.4, 50.5, 123.2, 82.6, 37.6, 41.8, 68, 82.6, 97, 51.2, 121.7, 46.1, 64.8, 54.2, 31, 38.9, 20.8, 106.7, 137.8, 180.8, 111.4, 16.2, 51, 63.6, 26.8, 9.2, 85, 74, 94.8, 131.4, 23.4, 70.8, 72.4, 8.6, 168, 126, 24.2, 58.2, 13.8, 40, 6.4, 85.5, 6.2, 107, 29.4, 12.2), V11 = c(0, 30.4, 125.3, 16.8, 16.6, 18, 5.3, 26.5, 42.5, 87.1, 33.3, 61.5, 151.9, 13.3, 13, 25, 5.1, 118.1, 41.6, 34.5, 49.5, 66.8, 14.3, 44.5, 103.5, 59.3, 74, 103.3, 61.5, 23, 73.5, 48.9, 158.7, 49, 32.1, 19.1, 50.5, 99.6, 47.5, 56.1, 32, 38.3, 40.7, 36.8, 63.9, 9.4, 49.9, 33.5, 101, 150.3, 36.9, 82.2, 39.4, 14.2, 45.4, 15.8, 88.4, 19.8, 22.2, 2.8, 37.4, 9.2, 62.6, 37.6, 81, 33.2, 9, 11.8, 96, 80.8, 52.8, 46.4, 49.2, 94.2, 15.2, 86.2, 100.6, 56.2, 90.6, 74.4), V12 = c(38.8, 86.8, 73.4, 0, 32.5, 36.3, 3.3, 44.2, 157.5, 1, 22.1, 179.7, 42, 37.1, 184.2, 31.5, 1.5, 3.8, 54.7, 19.3, 19.9, 0.5, 45.5, 15.8, 42.7, 104.7, 52.6, 15.4, 67.4, 21.7, 66.5, 11.8, 124.4, 39.3, 17.3, 77.5, 11.4, 18, 68.2, 77, 41.3, 16.3, 61.6, 24.6, 197.3, 4.6, 62.1, 24.4, 37.9, 97.7, 1.3, 69.8, 13.9, 98.4, 30.6, 8.6, 43.4, 102, 35, 21.8, 55.4, 18.2, 67.6, 47, 127.8, 28.2, 14, 67.8, 112, 136.6, 35.2, 35.8, 9.6, 13, 8.8, 119.6, 68.4, 45.8, 77, 56.6)), .Names = c("V1", "V2", "V3", "V4", "V5", "V6", "V7", "V8", "V9", "V10", "V11", "V12"), class = "data.frame", row.names = c(NA, -80L)) where V1 until V12 as month and 1 until 80 as a years. How can I do this in R? Thank you for helping me. Arshad [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.