我有一个位置估算数据库,想要计算每月内核利用率分布。我可以使用R中的adehabitat包来做到这一点,但是我想使用来自数据库的示例的引导来估计这些值的95%置信区间。 今天我一直在尝试使用启动包,但我仍然是R的新手,需要更多的专家帮助! 我得到的主要错误信息是:
Error in statistic(data, original, ...) : unused argument(s) (original)
以下是我一直在使用的文件:
head(all)
Num Hourbin COA_Lat COA_Lon POINT_X POINT_Y month year id
1 07/10/2010 15:00 48.56225 -53.89144 729339.9 5383461 October 2010 29912
2 07/10/2010 16:00 48.56254 -53.89121 729355.7 5383495 October 2010 29912
4 07/10/2010 18:00 48.56225 -53.89144 729339.7 5383461 October 2010 29912
5 07/10/2010 19:00 48.56225 -53.89144 729339.9 5383461 October 2010 29912
6 07/10/2010 20:00 48.56225 -53.89144 729339.8 5383461 October 2010 29912
7 07/10/2010 21:00 48.56225 -53.89144 729339.9 5383461 October 2010 29912
第5列和第6列分别为X和Y位置。我将这个数据集子集不同月份(即获取名为“oct”,“nov”等的文件)。我已经尝试在adehabitat包中设置kernelUD函数,这是一个我可以调用bootstrapping的函数,但到目前为止还没有运气。
kUDoct<-function(i) kernel.area(oct[,5:6],oct[,10],kern="bivnorm",unin=c("m"),unout=c("km2"))
bootoct<-boot(oct,kUDoct,R=1000)
Error in statistic(data, original, ...) : unused argument(s) (original)
非常感谢任何帮助!
中号
答案 0 :(得分:5)
嗯,你遇到的 问题是你没有使用boot
函数作为文档指导你。从?boot
开始,我们看到第二个参数statistic
是:
应用于数据时返回包含该数据的向量的函数 感兴趣的统计数据。当sim =“参数”时,第一个参数 统计必须是数据。对于每个复制模拟数据集 由ran.gen返回将被传递。在所有其他情况下统计必须 至少拿两个论点。传递的第一个参数将永远是 原始数据。第二个是索引,频率的矢量 或定义引导样本的权重。
请注意,这意味着您的函数应该定义为至少两个参数。你只接受一个(然后完全忽略它,奇怪的是)。
这个想法是你传递你的原始数据和一个标志的向量。然后通过使用这些指标对原始数据进行子集化来计算您感兴趣的统计数据,这将构成“自举样本”。
所以不要这样:
kUDoct<-function(i) kernel.area(oct[,5:6],oct[,10],kern="bivnorm",unin=c("m"),unout=c("km2"))
bootoct<-boot(oct,kUDoct,R=1000)
你可能想要做更像这样的事情:
kUDoct<-function(dat,ind) kernel.area(dat[ind,5:6],dat[ind,10],kern="bivnorm",unin=c("m"),unout=c("km2"))
bootoct<-boot(oct,kUDoct,R=1000)
但我无法诊断您可能得到的任何其他错误,因为您的示例不完全可重复。