Convert monthly time series vector to a year x
month data frame for
several possible subsequent analyses. Leading and trailing empty rows are
removed.
ts2df(x, mon1 = 1, addYr = FALSE, omit = FALSE)
monthly time series vector
starting month number, i.e., first column of the data frame
rows are normally labelled with the year of the starting month,
but addYr = TRUE
will add 1 to this year number
if TRUE
, then rows with any NA
will be removed.
An n x 12
data frame, where n
is the number of years.
Our main use of ts2df
is to convert a single monthly time series into
a year x
month data frame for EOF analysis of interannual
variability.
monthCor
finds the month-to-month correlations in a monthly time
series x
. It is useful for deciding where to start the 12-month
period for an EOF
analysis (mon1
in ts2df
), namely, at
a time of low serial correlation in x
.
Craddock, J. (1965) A meteorological application of principal component analysis. Statistician 15, 143--156.
# San Francisco Bay station 27 chlorophyll has the lowest serial
# correlation in Oct-Nov, with Sep-Oct a close second
chl27 <- sfbayChla[, 's27']
monthCor(chl27)
#> Jan-Feb Feb-Mar Mar-Apr Apr-May May-Jun Jun-Jul Jul-Aug Aug-Sep Sep-Oct Oct-Nov
#> 0.621 0.439 0.210 0.553 0.575 0.707 0.898 0.768 0.225 0.019
#> Nov-Dec Dec-Jan
#> 0.979 0.352
# Convert to a data frame with October, the first month of the
# local "water year", in the first column
tsp(chl27)
#> [1] 1978.000 2009.583 12.000
chl27 <- round(chl27, 1)
ts2df(chl27, mon1 = 10, addYr = TRUE)
#> Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep
#> 1978 NA NA NA 1.1 2.8 5.6 2.7 3.4 1.9 1.6 NA 1.7
#> 1979 2.1 2.2 1.7 1.9 1.8 2.4 3.8 2.3 4.8 1.6 3.9 2.1
#> 1980 1.2 1.1 NA 1.3 1.9 2.1 10.2 3.4 2.1 1.1 1.4 1.6
#> 1981 1.4 1.7 1.3 NA 1.7 2.0 9.1 NA NA NA NA NA
#> 1982 NA NA NA 2.8 4.5 6.5 9.3 8.2 3.4 1.4 NA 2.1
#> 1983 1.8 1.7 0.9 NA 1.4 7.0 16.4 16.6 5.4 1.4 1.7 2.0
#> 1984 1.5 1.5 1.4 1.9 2.8 3.0 9.8 3.5 1.2 1.7 2.3 2.9
#> 1985 1.4 NA NA NaN NaN 12.3 8.1 1.6 1.4 0.8 NA 2.0
#> 1986 1.5 1.1 NA 1.2 1.2 4.0 25.5 4.0 1.5 1.5 NA NA
#> 1987 1.3 1.2 1.1 1.4 1.4 5.1 5.9 5.1 2.9 1.7 2.0 2.0
#> 1988 2.0 0.7 1.3 NA 4.1 5.2 6.8 2.2 3.0 2.8 2.7 1.7
#> 1989 3.2 1.6 1.6 NA 3.6 10.3 11.0 4.1 2.1 2.2 2.0 2.2
#> 1990 2.8 NA 1.2 2.1 NaN 5.4 15.0 3.1 2.0 NA 2.5 NA
#> 1991 NA NA 1.9 1.7 1.9 3.7 8.2 6.3 5.0 NaN 1.9 2.2
#> 1992 NA 0.7 1.2 1.6 2.3 4.8 11.6 3.8 3.0 2.5 2.3 2.1
#> 1993 NA 1.7 1.3 1.3 1.8 22.1 9.8 2.9 1.7 NA NA NaN
#> 1994 1.2 1.2 NaN 1.3 2.8 12.6 4.5 4.0 5.7 2.6 1.9 2.0
#> 1995 2.1 1.8 NA 1.5 7.6 22.9 12.9 5.4 1.7 1.2 1.2 1.9
#> 1996 6.4 NA NA 1.0 1.2 6.6 11.5 3.8 0.4 1.1 1.1 1.6
#> 1997 2.2 2.3 1.4 4.0 12.6 6.9 11.4 1.9 1.3 2.7 1.7 2.9
#> 1998 2.6 2.6 NA 2.8 1.7 20.1 18.7 6.3 4.1 2.0 1.8 4.0
#> 1999 NA 1.8 NA 2.4 1.9 13.6 11.5 4.8 3.3 NA 3.4 2.3
#> 2000 16.2 2.4 2.2 3.3 3.2 9.3 13.4 3.3 1.7 1.8 2.6 3.0
#> 2001 2.6 39.4 25.6 NA 2.7 20.3 21.7 4.6 6.4 4.0 NA 2.9
#> 2002 3.3 2.7 3.6 NA NA 15.9 8.3 10.1 NA 2.6 4.2 4.2
#> 2003 4.2 4.0 3.7 4.5 30.3 26.6 9.1 4.6 4.2 4.3 5.2 5.5
#> 2004 3.5 2.6 2.1 2.3 5.3 17.1 6.1 4.9 2.9 3.1 4.7 7.8
#> 2005 5.0 4.0 4.8 2.5 3.9 5.0 8.7 6.8 4.7 NA 5.9 5.2
#> 2006 4.2 6.8 3.7 2.7 16.7 9.9 27.8 17.7 NA 2.6 3.5 4.6
#> 2007 4.8 8.9 3.1 3.9 5.2 8.1 17.1 NA 7.0 8.1 17.0 8.0
#> 2008 5.3 4.6 5.6 3.5 3.2 17.3 27.3 13.8 6.6 5.9 6.6 5.9
#> 2009 5.1 3.0 2.9 2.3 2.6 2.6 8.7 5.2 4.6 4.7 4.6 NA
ts2df(chl27, mon1 = 10, addYr = TRUE, omit = TRUE)
#> Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep
#> 1979 2.1 2.2 1.7 1.9 1.8 2.4 3.8 2.3 4.8 1.6 3.9 2.1
#> 1984 1.5 1.5 1.4 1.9 2.8 3.0 9.8 3.5 1.2 1.7 2.3 2.9
#> 1987 1.3 1.2 1.1 1.4 1.4 5.1 5.9 5.1 2.9 1.7 2.0 2.0
#> 1997 2.2 2.3 1.4 4.0 12.6 6.9 11.4 1.9 1.3 2.7 1.7 2.9
#> 2000 16.2 2.4 2.2 3.3 3.2 9.3 13.4 3.3 1.7 1.8 2.6 3.0
#> 2003 4.2 4.0 3.7 4.5 30.3 26.6 9.1 4.6 4.2 4.3 5.2 5.5
#> 2004 3.5 2.6 2.1 2.3 5.3 17.1 6.1 4.9 2.9 3.1 4.7 7.8
#> 2008 5.3 4.6 5.6 3.5 3.2 17.3 27.3 13.8 6.6 5.9 6.6 5.9