我试图使用package treeclim来分析我的树木年轮生长数据和气候。我测量了CooRecorder中的宽度,将它们分组为CDENDRO系列,并使用dplR read.rwl函数将它们读入R-Studio。但是,我一直收到错误信息
" dcc出错(Plot92.crn,Site92PRISM,selection = -6:9,method =" response",: 计时和气候记录的重叠时间跨度小于参数数量!考虑将参数数量调整为最多100个。"
我有100年的月度气候数据,如下所示:
# head(Site92PRISM)
year month ppt tmax tmin tmean vpdmin..hPa. vpdmax..hPa. site
1 1915 01 0.97 26.1 12.3 19.2 0.97 2.32 92
2 1915 02 1.20 31.5 16.2 23.9 1.03 3.30 92
3 1915 03 2.51 36.0 17.0 26.5 0.97 4.69 92
4 1915 04 3.45 48.9 26.3 37.6 1.14 8.13 92
5 1915 05 3.95 44.6 29.1 36.9 0.94 5.58 92
6 1915 06 6.64 51.0 31.5 41.3 1.04 7.93 92
我在dplR中制作的年表如下所示:
#head(Plot92.crn)
CAMstd samp.depth
1840 0.7180693 1
1841 0.3175528 1
1842 0.5729651 1
1843 0.9785082 1
1844 0.7676334 1
1845 0.3633687 1
我哪里错了?这两个文件都包含1915年至2015年的数据。
答案 0 :(得分:0)
我在软件包的Google论坛(即https://groups.google.com/forum/#!forum/treeclim)中向作者发布了类似的问题。
您需要确定的是,参数数量(n_param
)小于或等于树状年代学数据的样本量。 “参数数量”是指气候变量矩阵中的总列数。
例如,在以下分析中:
resp <- dcc(chrono = my_chrono,
climate = list(precip, temp),
boot = 'stationary')
您需要确保以下内容为TRUE
:
length(unique(rownames(my_chrono))) >= (ncol(precip)-1) + (ncol(temp)-1)
ncol(precip)-1
而不是ncol(precip)
,因为矩阵的第一列是YEAR
。还要注意,在我的示例中,my_chrono
中的年份与precip
和temp
中的年份相同,而不必一定要运行该函数(它将自动普通年份)。
最后,如果上一行代码为您提供FALSE
,则可以像这样使用参数selection
减少参数的数量:
resp <- dcc(chrono = my_chrono,
climate = list(precip, temp),
selection = .range(6:12,'prec') + .range(6:12, 'temp'),
var_names = c('prec', 'temp'),
boot = 'stationary')
由于dcc
功能会自动花费从上一个六月到当前九月的所有月份(即.range(-6:9)
),因此您可能需要缩小该范围。