Getting Started with dplR

Andy Bunn

28 September 2026

This vignette walks through the core of a tree-ring analysis in dplR: reading ring widths, describing them, detrending, building a chronology, and checking the crossdating. It uses only dplR and base R, and every example runs on data that ship with the package. For a longer treatment, with more on each step and on signal-free chronologies and time-series analysis, see Learning to Love dplR.

library(dplR)

Reading ring widths

Ring widths are read with read.rwl(), which handles Tucson (decadal), compact, Heidelberg, CSV-style spreadsheets and TRiDaS files. It guesses the format, but naming it is safer:

dat <- read.rwl("mysite.rwl", format = "tucson")

The result is an rwl object: a data frame with one column per series and one row per year, with the years as row names and NA where a series has no ring. Here we use co021, 35 Douglas-fir series from Mesa Verde, Colorado, which was read from the International Tree-Ring Data Bank this way.

data(co021)
class(co021)
## [1] "rwl"        "data.frame"
dim(co021)
## [1] 788  35
co021[1:5, 1:4]
##      641114 641121 641132 641143
## 1176     NA     NA     NA     NA
## 1177     NA     NA     NA     NA
## 1178     NA     NA     NA     NA
## 1179     NA     NA     NA     NA
## 1180     NA     NA     NA     NA

Describing the data

rwl.report() gives an overview: number of series, span, mean length, mean interseries correlation, and any missing rings or suspicious values.

rwl.report(co021)
## File: co021.rwl
## Site: not given; the file carries no header
## Precision: 0.01 mm
## -------------
## Number of dated series: 35 
## Number of measurements: 19772 
## Number of missing (0) rings: 716 (3.621%)
## Avg series length: 564.9143 
## Range:  788 
## Span:  1176 - 1963 
## Mean (Std dev) series intercorrelation: 0.8477981 (0.03638052)
## Mean (Std dev) AR1: 0.6038 (0.157479)
## -------------
## Years where all rings are NA
##     None 
## -------------
## Years where all rings are zero
##     None 
## -------------
## Years with missing (0) rings listed by series 
##     Series 641114 -- 1455 1480 1495 1500 1505 1506 1516 1522 1532 1536 1542 1579 1584 1585 1590 1654 1679 1685 1861 1896 1899 1902 1904 
##     Series 641121 -- 1254 1390 1400 1413 1455 1457 1480 1495 1500 1506 1532 1542 1579 1584 1585 1590 1636 1654 1729 
##     Series 641132 -- 1413 1495 1506 1584 1585 1654 1679 1729 1861 1902 
##     Series 641143 -- 1495 1500 1506 1522 1532 1542 1584 1585 1679 1685 1729 1735 1782 1847 1861 1864 1896 1899 1902 1904 
##     Series 642114 -- 1390 1413 1455 1495 1500 1505 1506 1518 1522 1532 1584 1585 1654 1679 1729 1847 1861 1896 1899 1902 1904 
##     Series 642121 -- 1413 1455 1480 1495 1500 1516 1522 1532 1542 1584 1585 1896 1899 1902 1904 
##     Series 642143 -- 1455 1464 1495 1506 1542 1584 1585 1636 1654 1679 1729 1757 1767 1773 1782 1790 1847 1861 1896 1899 1902 1904 
##     Series 642211 -- 1455 1500 1579 1584 1585 1590 1654 1666 1667 1679 1685 1708 1724 1729 1735 1757 1767 1773 1782 1790 1808 1813 1818 1819 1820 1823 1845 1847 1851 1857 1861 1864 1876 1896 1899 1900 1902 1904 1934 1951 1959 
##     Series 642222 -- 1455 1579 1584 1585 1587 1654 1679 1685 1729 1735 1767 1773 1782 1790 1805 1806 1808 1813 1818 1819 1820 1823 1845 1847 1851 1861 1864 1876 1896 1899 1902 1904 1951 
##     Series 642233 -- 1495 1579 1584 1585 1654 1679 1729 1735 1773 1782 1790 1808 1818 1819 1820 1823 1831 1845 1847 1851 1861 1864 1872 1876 1896 1899 1902 1904 1959 
##     Series 642244 -- 1542 1579 1584 1585 1654 1729 1735 1773 1780 1782 1790 1805 1806 1808 1813 1818 1819 1820 1845 1847 1851 1854 1857 1864 1870 1871 1872 1876 1878 1883 1894 1896 1899 1900 1902 1904 1934 1936 1946 1951 1959 
##     Series 643114 -- 1390 1500 1506 1522 1584 1585 1679 1896 1899 1902 1904 
##     Series 643143 -- 1495 1500 1506 1522 1584 1585 1636 1654 1679 1729 1896 1902 1904 
##     Series 643211 -- 1590 1600 1654 1679 1724 1729 1735 1773 1780 1790 1847 1861 1896 1899 1902 1904 1959 
##     Series 643222 -- 1679 1729 1735 1767 1773 1782 1790 1805 1823 1847 1861 1864 1899 1902 1904 1951 
##     Series 643233 -- 1579 1583 1584 1585 1590 1679 1685 1729 1773 1782 1790 1847 1861 1864 1896 1899 1904 1951 
##     Series 643244 -- 1495 1500 1505 1516 1532 1542 1583 1584 1585 1587 1590 1600 1679 1685 1724 1729 1735 1773 1782 1790 1861 1896 1902 1904 
##     Series 644143 -- 1500 1505 1506 1522 1584 1585 1590 1636 1648 1654 1679 1729 1773 1847 1861 1896 1899 1902 1904 
##     Series 644211 -- 1390 1455 1457 1464 1542 1584 1585 1679 1729 1773 1790 1808 1861 1896 1899 1902 1904 
##     Series 644222 -- 1455 1457 1464 1495 1506 1542 1585 1679 1729 1773 1790 1847 1861 1864 1896 1899 1902 1904 
##     Series 644233 -- 1442 1455 1457 1464 1542 1584 1585 1676 1773 1847 1861 1864 1896 1902 1904 1959 
##     Series 644244 -- 1455 1457 1464 1495 1500 1532 1542 1584 1585 1679 1729 1773 1790 1847 1861 1896 1899 1902 1904 
##     Series 645100 -- 1316 1413 1455 1464 1480 1495 1500 1505 1506 1510 1516 1522 1532 1538 1542 1561 1579 1584 1585 1590 1654 1679 1685 1729 1861 1902 1904 
##     Series 645102 -- 1457 1480 1495 1500 1506 1510 1522 1532 1584 1585 1590 1600 1636 1654 1679 1847 1861 1896 1899 1900 1902 1904 1934 
##     Series 645103 -- 1390 1413 1455 1457 1495 1500 1506 1522 1532 1542 1579 1584 1585 1587 1590 1636 1654 1685 1773 1808 1823 1861 1896 1899 1902 1904 1959 
##     Series 645214 -- 1579 1584 1585 1676 1679 1685 1729 1773 1782 1790 1808 1818 1820 1823 1845 1847 1851 1861 1864 1872 1896 1899 1902 1904 1951 1959 
##     Series 645221 -- 1585 1676 1679 1685 1729 1767 1773 1782 1790 1818 1820 1823 1845 1847 1861 1864 1896 1899 1902 1908 
##     Series 645232 -- 1585 
##     Series 645243 -- 1585 1679 1685 1729 1782 1790 1823 1847 1861 1864 1896 1899 1902 1904 1951 1959 
##     Series 646107 -- 1413 1455 1480 1495 1506 1522 1532 1538 1542 1579 1585 1590 1654 1685 1902 
##     Series 646118 -- 1390 
##     Series 646211 -- 1676 1679 1685 1696 1729 1767 1773 1782 1790 1796 1798 1800 1801 1803 1805 1806 1808 1813 1814 1818 1819 1820 1823 1845 1847 1851 1861 1864 1894 1899 1902 1904 1951 
##     Series 646222 -- 1667 1676 1679 1685 1696 1729 1757 1790 1796 1803 1805 1806 1808 1813 1818 1820 1823 1845 1851 1864 1899 1902 1904 1951 1959 
##     Series 646233 -- 1667 1679 1696 1729 1790 1805 1806 1823 1845 1851 1861 1902 1904 1934 1951 1959 
##     Series 646244 -- 1679 1729 1757 1767 1782 1788 1790 1805 1806 1808 1820 1823 1845 1851 1861 1864 1876 1896 1899 1902 1904 1934 1951 1959 
## -------------
## Years with more than one consecutive missing (0) rings listed by series 
##     Series 641114 -- 1505 1506 1584 1585 
##     Series 641121 -- 1584 1585 
##     Series 641132 -- 1584 1585 
##     Series 641143 -- 1584 1585 
##     Series 642114 -- 1505 1506 1584 1585 
##     Series 642121 -- 1584 1585 
##     Series 642143 -- 1584 1585 
##     Series 642211 -- 1584 1585 1666 1667 1818 1819 1820 1899 1900 
##     Series 642222 -- 1584 1585 1805 1806 1818 1819 1820 
##     Series 642233 -- 1584 1585 1818 1819 1820 
##     Series 642244 -- 1584 1585 1805 1806 1818 1819 1820 1870 1871 1872 1899 1900 
##     Series 643114 -- 1584 1585 
##     Series 643143 -- 1584 1585 
##     Series 643233 -- 1583 1584 1585 
##     Series 643244 -- 1583 1584 1585 
##     Series 644143 -- 1505 1506 1584 1585 
##     Series 644211 -- 1584 1585 
##     Series 644233 -- 1584 1585 
##     Series 644244 -- 1584 1585 
##     Series 645100 -- 1505 1506 1584 1585 
##     Series 645102 -- 1584 1585 1899 1900 
##     Series 645103 -- 1584 1585 
##     Series 645214 -- 1584 1585 
##     Series 646211 -- 1800 1801 1805 1806 1813 1814 1818 1819 1820 
##     Series 646222 -- 1805 1806 
##     Series 646233 -- 1805 1806 
##     Series 646244 -- 1805 1806 
## -------------
## Years with internal NA values listed by series 
##     None

summary() returns per-series statistics, and plot() shows where each series sits in time.

head(summary(co021))
##   series first last year  mean median stdev  skew kurtosis  gini   ar1
## 1 641114  1270 1963  694 0.287   0.23 0.231 2.884   13.963 0.372 0.686
## 2 641121  1250 1963  714 0.328   0.26 0.315 3.306   15.199 0.410 0.744
## 3 641132  1256 1963  708 0.357   0.29 0.337 4.741   33.324 0.373 0.686
## 4 641143  1237 1963  727 0.344   0.27 0.287 2.341    7.637 0.397 0.708
## 5 642114  1243 1963  721 0.281   0.24 0.219 2.848   12.385 0.358 0.673
## 6 642121  1260 1963  704 0.313   0.21 0.416 4.399   22.962 0.474 0.865
plot(co021, plot.type = "spag")

Detrending

Raw ring widths carry an age-related growth trend and differences in mean growth between trees. Detrending fits a curve to each series and divides the ring widths by it, giving dimensionless indices with a mean of about one. detrend() does this for every series; detrend.series() does one and plots the fit, which is a good way to choose a method.

x <- co021[, "641114"]
names(x) <- rownames(co021)
x.rwi <- detrend.series(x, method = c("Spline", "ModNegExp"),
                        make.plot = TRUE)

Here we use a cubic smoothing spline with a 50% frequency cutoff at two-thirds of each series’ length (the default for "Spline").

co021.rwi <- detrend(co021, method = "Spline")

The result is an rwi object with the same shape as the rwl, which records how it was made. summary() describes the indices as a collection. rbar.eff is the mean interseries correlation and EPS the expressed population signal; an EPS above about 0.85 is the usual rule of thumb for a chronology that represents the population. These come from rwi.stats(), and here count each core as its own tree; pass ids to group cores by tree. The summary also correlates each series with the mean of the others and lists any that do not fit.

summary(co021.rwi)
## Ring-width indices: 35 series, 1176-1963
## Made by detrend(), method "Spline", as ratios (centred on 1).
## Common interval: none (no year has every series)
## rbar.eff 0.737, EPS 0.990, SNR 97.85 (rwi.stats(), one tree per series)
## Series vs the others (interseries.cor()): mean r 0.881, range 0.803 to 0.923
## Every series correlates with the others at p < 0.05.
## More:
##   as.data.frame(summary(x))  every series: span, mean, sd, ar1, cor, p
##   summary(x, ids = )         rbar and EPS with cores grouped by tree
##   rwi.stats.running(x)       rbar and EPS through time
##   corr.rwl.seg() on widths   where in a series the fit breaks down

plot() with plot.type = "image" shows every index at once, years across and series down, brown below 1 and green above. Vertical stripes are years the trees agree on, which is the signal a chronology is built from.

plot(co021.rwi, plot.type = "image")

The same plot is a quick check on the detrending. Dividing each series by its mean leaves the age trend in, and it shows as a green run at the start of nearly every series.

plot(detrend(co021, method = "Mean"), plot.type = "image")

Building a chronology

chron() averages the indices by year, using Tukey’s biweight robust mean by default. The result is a crn object: the chronology and the number of series behind each year.

co021.crn <- chron(co021.rwi)
tail(co021.crn)
##            std samp.depth
## 1958 1.1284148         32
## 1959 0.1459389         32
## 1960 1.1804609         32
## 1961 0.7720185         32
## 1962 0.6232634         32
## 1963 0.6440584         29
plot(co021.crn, add.spline = TRUE, nyrs = 32)

The early part of this chronology rests on few series (fewer than five before 1234), so check samp.depth before trusting a given year.

Checking the crossdating

Crossdating assigns each ring its exact calendar year. dplR does not replace visual crossdating, but it can check it statistically, the way COFECHA does. To see what an error looks like, we plant one: the 1500 ring of series 641143 is deleted, so every ring before 1500 is now dated one year too late.

dat <- co021
x <- dat[, "641143"]
names(x) <- rownames(dat)
dat[, "641143"] <- delete.ring(x, year = 1500)

corr.rwl.seg() correlates overlapping segments of each series against a master built from all the other series. Segments that do not correlate significantly are flagged, and with lag.max it also finds the shift at which each segment correlates best.

crs <- corr.rwl.seg(dat, seg.length = 50, pcrit = 0.01,
                    lag.max = 10, label.cex = 0.7)

Every tested segment of 641143 that ends before 1500 correlates best at a lag of -1, and every later one at a lag of 0. In dplR, as in COFECHA, a negative lag means the series is missing a ring, so this points to a missing ring near 1500.

ok <- !is.na(crs$best.lag["641143", ])
crs$best.lag["641143", ok]
## 1275.1324 1300.1349 1325.1374 1350.1399 1375.1424 1400.1449 1425.1474 1450.1499 
##        -1        -1        -1        -1        -1        -1        -1        -1 
## 1475.1524 1500.1549 1525.1574 1550.1599 1575.1624 1600.1649 1625.1674 1650.1699 
##         0         0         0         0         0         0         0         0 
## 1675.1724 1700.1749 1725.1774 1750.1799 1775.1824 1800.1849 1825.1874 1850.1899 
##         0         0         0         0         0         0         0         0 
## 1875.1924 1900.1949 
##         0         0

ccf.series.rwl() looks at one series in more detail, plotting the full cross-correlation with the master for each segment.

ccf <- ccf.series.rwl(rwl = dat[, colnames(dat) != "641143"],
                      series = dat[, "641143"],
                      series.yrs = as.numeric(rownames(dat)),
                      seg.length = 50, bin.floor = 50)
## NB: With series.x = FALSE (default), negative lags indicate missing rings in series

xdate.report() puts all of this into a COFECHA-style report. It lists the flagged segments with their best lag and the gain in correlation, and records the settings and file checksum so the report can be reproduced. Printing it shows the report in the console.

rpt <- xdate.report(dat, title = "co021 with a planted fault")
rpt

The report opens with a summary of the collection:

Summary

Measurement file name dat
Date checked 29SEP26
Beginning year 1176
Ending year 1963
Series intercorrelation 0.878
Avg mean sensitivity 0.590
Avg standard deviation 0.315
Avg autocorrelation 0.634
Number dated series 35
Segment length tested 50
Number problem segments 9 (A 0, B 9)
Pct problem segments 1.25

The flagged segments section is where to start. All nine flags are on 641143, all are B flags at a lag of -1, and all end before 1500:

Flagged segments

Seq Series Segment Flag r dated Best lag r at lag Gain Note
4 641143 1250-1299 B -.082 -1 .922 1.004
4 641143 1275-1324 B .164 -1 .915 .751
4 641143 1300-1349 B .212 -1 .903 .691
4 641143 1325-1374 B .126 -1 .920 .795
4 641143 1350-1399 B .278 -1 .936 .658
4 641143 1375-1424 B .176 -1 .914 .738
4 641143 1400-1449 B .038 -1 .920 .882
4 641143 1425-1474 B -.080 -1 .946 1.027
4 641143 1450-1499 B -.038 -1 .953 .991

The same table is in the report as a data frame, rpt$flagged, ready for further work:

rpt$flagged[, c("series", "from", "to", "flag", "best.lag", "gain")]
##   series from   to flag best.lag      gain
## 1 641143 1250 1299    B       -1 1.0043412
## 2 641143 1275 1324    B       -1 0.7509562
## 3 641143 1300 1349    B       -1 0.6912424
## 4 641143 1325 1374    B       -1 0.7945452
## 5 641143 1350 1399    B       -1 0.6579816
## 6 641143 1375 1424    B       -1 0.7378189
## 7 641143 1400 1449    B       -1 0.8823181
## 8 641143 1425 1474    B       -1 1.0267152
## 9 641143 1450 1499    B       -1 0.9913002

A B flag means the segment correlates better at another lag than at its dated position. An A flag, which does not appear here, means the dated position is the segment’s best but falls short of significance. The report also has a correlation table for every segment of every series, descriptive statistics, the output of rwl.check(), and notes on how each number was computed:

The full report

COFECHA-style crossdating report: co021 with a planted fault

Report generated using dplR 1.8.0 (R 4.5.2) on 2026-09-28 18:39 PDT. Built with corr.rwl.seg() and rwl.check(), not COFECHA; see the notes at the end.

Summary

Measurement file name dat
Date checked 29SEP26
Beginning year 1176
Ending year 1963
Series intercorrelation 0.878
Avg mean sensitivity 0.590
Avg standard deviation 0.315
Avg autocorrelation 0.634
Number dated series 35
Segment length tested 50
Number problem segments 9 (A 0, B 9)
Pct problem segments 1.25

Correlation of series by segments

Correlations of 50-year dated segments, lagged 25 years. Flags: A = correlation under .3281 but highest as dated; B = correlation higher at other than dated position.

Seq Series Time span 1200-1249 1225-1274 1250-1299 1275-1324 1300-1349 1325-1374 1350-1399 1375-1424 1400-1449 1425-1474 1450-1499 1475-1524 1500-1549 1525-1574 1550-1599 1575-1624 1600-1649 1625-1674 1650-1699 1675-1724
1 641114 1270-1963 .91 .96 .95 .95 .95 .93 .92 .93 .90 .77 .71 .90 .90 .89 .93 .91 .82
2 641121 1250-1963 .60 .88 .82 .83 .94 .93 .87 .92 .96 .93 .93 .93 .92 .90 .91 .79 .65 .70
3 641132 1256-1963 .88 .89 .91 .92 .94 .94 .92 .93 .91 .91 .91 .92 .93 .91 .87 .83 .84
4 641143 1238-1963 -.08 B .16 B .21 B .13 B .28 B .18 B .04 B -.08 B -.04 B .60 .93 .92 .87 .88 .93 .93 .92 .88
5 642114 1243-1963 .71 .86 .95 .94 .93 .92 .90 .94 .96 .97 .95 .94 .92 .92 .94 .91 .90 .90
6 642121 1260-1963 .53 .63 .89 .91 .94 .92 .93 .93 .91 .91 .92 .84 .82 .90 .93 .93 .91
7 642143 1204-1963 .83 .92 .95 .91 .90 .94 .96 .95 .91 .92 .95 .94 .94 .90 .87 .92 .90 .90 .87
8 642211 1414-1963 .80 .94 .91 .84 .80 .88 .90 .91 .93 .93 .87
9 642222 1450-1963 .88 .88 .89 .92 .77 .74 .94 .96 .95 .94
10 642233 1410-1963 .83 .89 .90 .92 .91 .90 .92 .94 .95 .95 .93
11 642244 1455-1963 .90 .88 .91 .91 .91 .95 .96 .95 .94
12 643114 1310-1963 .82 .93 .94 .93 .92 .94 .93 .93 .92 .89 .86 .89 .84 .81 .85
13 643143 1227-1963 .83 .93 .88 .83 .90 .91 .87 .91 .95 .96 .94 .94 .91 .90 .90 .89 .91 .87
14 643211 1590-1963 .86 .91 .94 .92
15 643222 1622-1963 .88 .93 .94
16 643233 1566-1963 .87 .90 .92 .95 .96
17 643244 1470-1963 .92 .94 .94 .86 .87 .90 .90 .92 .92
18 644143 1252-1963 .87 .88 .87 .91 .94 .92 .94 .97 .98 .97 .96 .92 .91 .92 .85 .76 .76
19 644211 1337-1963 .80 .87 .88 .88 .90 .95 .96 .93 .92 .93 .96 .95 .93 .91
20 644222 1325-1963 .64 .65 .83 .86 .87 .89 .84 .87 .93 .76 .74 .92 .91 .92 .93
21 644233 1370-1963 .92 .85 .87 .94 .93 .94 .94 .91 .89 .92 .96 .85 .80
22 644244 1322-1963 .79 .80 .89 .90 .94 .94 .91 .93 .94 .92 .89 .89 .88 .86 .89
23 645100 1234-1962 .87 .95 .95 .94 .91 .94 .95 .91 .91 .91 .88 .85 .92 .93 .93 .95 .91 .87
24 645102 1264-1962 .87 .89 .68 .77 .95 .88 .88 .92 .94 .95 .92 .85 .85 .92 .85 .86 .89
25 645103 1283-1962 .95 .91 .92 .95 .94 .95 .96 .94 .93 .90 .86 .86 .89 .84 .77 .74
26 645214 1461-1963 .87 .88 .90 .89 .89 .93 .92 .91 .93
27 645221 1490-1963 .88 .85 .89 .92 .95 .96 .93 .88
28 645232 1466-1659 .89 .91 .90 .89 .91 .94
29 645243 1528-1963 .86 .87 .92 .94 .92 .92
30 646107 1200-1947 .71 .76 .93 .95 .88 .90 .93 .92 .92 .92 .93 .88 .82 .90 .91 .94 .95 .81 .76
31 646118 1176-1400 .75 .87 .92 .83 .80 .86
32 646211 1469-1963 .91 .90 .80 .79 .84 .87 .68 .73 .92
33 646222 1660-1963 .91
34 646233 1528-1963 .75 .68 .73 .87 .91 .91
35 646244 1483-1963 .83 .76 .79 .84 .83 .87 .91 .90
Av segment correlation .77 .69 .82 .84 .81 .85 .88 .86 .85 .88 .91 .91 .89 .87 .87 .91 .90 .88 .88
Seq Series Time span 1700-1749 1725-1774 1750-1799 1775-1824 1800-1849 1825-1874 1850-1899 1875-1924 1900-1949
1 641114 1270-1963 .80 .88 .89 .92 .92 .89 .89 .90 .90
2 641121 1250-1963 .89 .88 .85 .89 .89 .90 .92 .91 .91
3 641132 1256-1963 .91 .92 .92 .91 .90 .92 .95 .95 .95
4 641143 1238-1963 .91 .92 .90 .94 .95 .87 .85 .86 .86
5 642114 1243-1963 .93 .92 .89 .92 .93 .92 .90 .89 .83
6 642121 1260-1963 .91 .91 .89 .88 .85 .85 .93 .92 .86
7 642143 1204-1963 .89 .91 .90 .89 .90 .88 .86 .87 .85
8 642211 1414-1963 .91 .95 .90 .90 .92 .89 .92 .93 .92
9 642222 1450-1963 .95 .96 .92 .89 .91 .91 .92 .93 .89
10 642233 1410-1963 .96 .95 .91 .93 .94 .88 .92 .93 .89
11 642244 1455-1963 .96 .95 .86 .88 .90 .79 .84 .89 .91
12 643114 1310-1963 .79 .83 .91 .87 .87 .90 .94 .95 .87
13 643143 1227-1963 .83 .84 .86 .88 .88 .86 .87 .87 .87
14 643211 1590-1963 .94 .91 .69 .75 .88 .94 .94 .93 .91
15 643222 1622-1963 .96 .94 .91 .91 .93 .92 .93 .94 .95
16 643233 1566-1963 .96 .96 .92 .93 .95 .93 .92 .89 .90
17 643244 1470-1963 .95 .96 .96 .96 .95 .93 .94 .95 .93
18 644143 1252-1963 .87 .87 .85 .89 .88 .83 .85 .86 .89
19 644211 1337-1963 .91 .92 .93 .95 .93 .85 .89 .91 .94
20 644222 1325-1963 .94 .92 .90 .95 .93 .91 .94 .95 .96
21 644233 1370-1963 .92 .88 .81 .92 .92 .87 .93 .95 .96
22 644244 1322-1963 .92 .93 .90 .91 .93 .93 .94 .94 .93
23 645100 1234-1962 .95 .95 .92 .91 .91 .87 .88 .93 .93
24 645102 1264-1962 .86 .85 .86 .90 .88 .86 .92 .91 .89
25 645103 1283-1962 .88 .90 .86 .89 .90 .91 .94 .93 .89
26 645214 1461-1963 .95 .96 .95 .94 .92 .90 .93 .92 .90
27 645221 1490-1963 .91 .92 .91 .96 .96 .93 .93 .90 .87
29 645243 1528-1963 .95 .95 .93 .96 .97 .95 .95 .93 .89
30 646107 1200-1947 .90 .89 .89 .93 .93 .87 .88 .92
32 646211 1469-1963 .92 .93 .75 .74 .82 .87 .93 .94 .93
33 646222 1660-1963 .93 .93 .84 .80 .82 .90 .92 .93 .89
34 646233 1528-1963 .92 .93 .89 .91 .92 .92 .93 .91 .91
35 646244 1483-1963 .91 .93 .91 .90 .90 .92 .95 .93 .89
Av segment correlation .91 .92 .88 .90 .91 .89 .91 .92 .90

Flagged segments

Seq Series Segment Flag r dated Best lag r at lag Gain Note
4 641143 1250-1299 B -.082 -1 .922 1.004
4 641143 1275-1324 B .164 -1 .915 .751
4 641143 1300-1349 B .212 -1 .903 .691
4 641143 1325-1374 B .126 -1 .920 .795
4 641143 1350-1399 B .278 -1 .936 .658
4 641143 1375-1424 B .176 -1 .914 .738
4 641143 1400-1449 B .038 -1 .920 .882
4 641143 1425-1474 B -.080 -1 .946 1.027
4 641143 1450-1499 B -.038 -1 .953 .991

Descriptive statistics

Unfiltered columns describe the measurements as read; the dplR filtered columns describe the series that was correlated (see the notes).

Seq Series Interval Years Segments Flags Corr with master Mean msmt Max msmt Std dev Auto corr Mean sens dplR filt. max dplR filt. std dev dplR filt. auto corr AR
1 641114 1270-1963 694 26 0 .876 .29 2.33 .231 .700 .538 2.59 .437 .028 0
2 641121 1250-1963 714 27 0 .849 .33 3.02 .315 .746 .537 2.31 .425 .001 0
3 641132 1256-1963 708 26 0 .894 .36 3.94 .337 .697 .491 2.17 .397 -.029 0
4 641143 1238-1963 726 27 9 .634 .34 2.16 .287 .709 .522 2.29 .419 -.008 3
5 642114 1243-1963 721 27 0 .899 .28 1.94 .219 .674 .529 2.30 .423 -.007 3
6 642121 1260-1963 704 26 0 .871 .31 3.55 .416 .868 .515 2.41 .418 -.005 3
7 642143 1204-1963 760 28 0 .898 .37 2.32 .338 .751 .514 2.29 .409 -.008 3
8 642211 1414-1963 550 20 0 .888 .36 2.29 .330 .630 .761 3.35 .588 -.006 3
9 642222 1450-1963 514 19 0 .892 .41 2.57 .333 .584 .726 2.96 .559 -.029 0
10 642233 1410-1963 554 20 0 .908 .44 2.18 .366 .593 .729 2.73 .554 -.004 3
11 642244 1455-1963 509 18 0 .883 .41 3.47 .465 .672 .796 3.21 .612 -.002 3
12 643114 1310-1963 654 24 0 .881 .29 1.99 .217 .678 .486 2.58 .401 -.010 3
13 643143 1227-1963 737 27 0 .874 .45 3.21 .450 .783 .479 2.81 .394 .022 0
14 643211 1590-1963 374 13 0 .884 .37 1.24 .214 .244 .630 2.73 .475 .004 1
15 643222 1622-1963 342 12 0 .923 .28 .80 .170 .277 .688 2.48 .505 -.004 3
16 643233 1566-1963 398 14 0 .915 .32 1.13 .215 .433 .659 2.81 .524 -.069 0
17 643244 1470-1963 494 18 0 .921 .33 .95 .199 .334 .648 3.25 .507 .001 1
18 644143 1252-1963 712 26 0 .862 .37 2.95 .318 .733 .490 2.48 .400 -.008 3
19 644211 1337-1963 627 23 0 .904 .34 .93 .189 .366 .562 2.60 .447 -.004 3
20 644222 1325-1963 639 24 0 .872 .38 1.40 .236 .551 .534 2.97 .429 -.028 0
21 644233 1370-1963 594 22 0 .900 .34 1.17 .196 .513 .532 2.54 .429 -.002 3
22 644244 1322-1963 642 24 0 .905 .32 1.21 .189 .481 .546 2.57 .434 -.007 3
23 645100 1234-1962 729 27 0 .905 .30 1.39 .209 .637 .537 2.42 .429 -.011 3
24 645102 1264-1962 699 26 0 .870 .35 2.73 .341 .796 .508 2.50 .420 .037 0
25 645103 1283-1962 680 25 0 .885 .30 2.20 .326 .822 .555 2.76 .432 -.008 3
26 645214 1461-1963 503 18 0 .911 .39 2.86 .401 .706 .718 2.96 .578 -.005 3
27 645221 1490-1963 474 17 0 .913 .44 3.33 .482 .727 .712 2.73 .548 .005 0
28 645232 1466-1659 194 6 0 .913 .95 2.99 .645 .555 .581 2.48 .478 -.017 3
29 645243 1528-1963 436 15 0 .927 .42 2.92 .381 .629 .702 2.66 .548 .011 0
30 646107 1200-1947 748 27 0 .883 .35 1.93 .255 .663 .507 2.38 .409 -.008 3
31 646118 1176-1400 225 6 0 .836 .71 2.13 .357 .509 .397 2.18 .380 .005 1
32 646211 1469-1963 495 18 0 .835 .50 2.88 .460 .617 .751 2.76 .566 -.008 3
33 646222 1660-1963 304 10 0 .878 .32 1.02 .226 .290 .853 2.85 .595 .001 1
34 646233 1528-1963 436 15 0 .872 .53 2.99 .497 .623 .720 2.59 .537 -.002 1
35 646244 1483-1963 481 17 0 .879 .54 2.84 .501 .657 .744 2.56 .557 -.009 3
Total or mean 19771 718 9 .878 .37 3.94 .315 .634 .590 3.35 .465 -.005

Data checks (rwl.check())

  • WARNING RWL_SERIES_OUTLIER 641143: correlates with the rest of the collection at r = 0.638 where the collection median is 0.891 (12 MAD below it); it does not fit the collection it is in

47 note(s) not shown; see rwl.check() or the check element of the report.

Notes

  • Report generated using dplR 1.8.0 (R 4.5.2) on 2026-09-28 18:39 PDT.
  • Filtering: each series divided by a 32-year smoothing spline (caps()), then prewhitened with an AR model (order by AIC, at most 3).
  • Master: biweight robust mean of the other series (leave-one-out).
  • Correlation: Pearson, one-tailed, pcrit = 0.01; critical r = 0.3281 for 50-year segments.
  • Segments: 50 years, lagged 25, first segment floored to 100. Lags searched: +/- 10 years.
  • A segment is tested only where the series and the master cover all of it, at the dated position and at every lag. COFECHA also tests partial segments at the ends of a series, so series here may show fewer segments, and no flags can be raised at the ends of the record.
  • Lags follow COFECHA: negative means rings are probably missing from the series, positive means false rings. A missing ring carries its lag into every segment before it, so look where the lag changes along a series. A B flag is a hypothesis to check on the wood; the gain says how seriously to take it.
  • A B flag marked “weak at every lag” correlates under the critical value even at its best lag: the segment is weak wherever it is placed, and the shift is not evidence of a dating error. Treat it as a low correlation, like an A.
  • Averages in the summary and the totals are weighted by the number of years in each series, as COFECHA’s are.
  • Unfiltered block and mean sensitivity: the measurements as read, and sens1().
  • dplR filtered block: the series that was correlated, after filtering. COFECHA’s filtered series is defined differently, so these three columns are not COFECHA’s numbers.
  • AR: order of the AR model used to prewhiten.

write.xdate.report() saves the report as text, Markdown or HTML:

write.xdate.report(rpt, "co021-report.html")

The statistics say where to look; the wood says what happened. Having found the likely missing ring, you would go back to the sample, and once confirmed, fix the series with insert.ring().

Where to go next