0

我有一个跨越多年的大型数据集,其中包含许多变量(年份、站点、位置、图片编号、分类和计数)。Year、Site、Location 的唯一变量在整个数据集中都是稳定的,拍摄的照片数量也基本稳定(我偶尔会忘记拍摄某个位置的所有照片)。但是,由于我已经设置了分类变量,如果一组照片中不存在某个分类单元,则它不会包含在该站点的位置数据中(没有零数据)。

但是,当需要计算多年来的平均密度时,重要的是在计算中表示零数据。

这是我的数据表的示例。

Year<-c(2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005,2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005 ,2005, 2005, 2005, 2005 ,2005 ,2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005 ,2005, 2005 ,2005, 2005, 2005 ,2005 ,2005 ,2005, 2005 ,2005 ,2005, 2005, 2005, 2005, 2005 ,2006, 2006, 2006, 2006, 2006, 2006 ,2006 ,2006, 2006, 2006, 2006 ,2006 ,2006 ,2006 ,2006 ,2006 ,2006 ,2006, 2006, 2006, 2006, 2006 ,2006 ,2006, 2006 ,2006, 2006, 2006,2006, 2006, 2006 ,2006 ,2006, 2006 ,2006, 2006 ,2006 ,2006, 2006, 2006, 2006 ,2006, 2006, 2006, 2006, 2006 ,2006,2006,2006,2006,2006)

Site<- c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2,2,2,2)

Location<-c(1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3,3, 3, 3, 3, 3, 3,3,3,3,3)

Photo<-c(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 ,1 ,2, 3, 4, 1, 2 ,3 ,4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1 ,2 ,3 ,4 ,1 ,2 ,3 ,4 ,1 ,2 ,3 ,4 ,1 ,2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 4,1,2,3,4)

Taxonomy<-c('B' ,'B' ,'B' ,'B', 'C', 'C', 'C', 'C', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C','C', 'C', 'C', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'A', 'A', 'A', 'A','B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B','A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'A', 'A', 'A', 'A', 'B', 'B', 'B','C', 'C', 'C', 'C')


Count<-rnorm(119,mean=5)

DF<-data.frame(Year,Site,Location,Photo,Taxonomy,Count)

我在这个示例数据集中添加了两个问题。我在 2006 年倒数第二个站点/位置(第 115 行)中缺少一张图片。并且分类群 C 不会出现在 2005 年的第一个位置,而仅出现在 2006 年的最后一个位置。

如果生活是完美的,并且所有零数据都包含在我的数据集中,我可以做到

aggregate(Count~Year+Site+Location+Photo+Taxonomy,DF,mean)

或者

aggregate(Count~Year+Site+Taxonomy,DF,mean)

如果我想看看这些年来的网站。

但是如果没有“零”数据,我所有的手段都将失效。

我尝试编写一些代码来添加所有零数据,但是数据集变得非常庞大,我宁愿不走那条路。

4

2 回答 2

1

由于 Pandas 或 R :-) 在均值计算中明确排除了缺失的数据,因此,您需要在框架工作之外通过合计有问题的项目并将其除以所有项目的计数来完成...

于 2013-02-03T01:09:56.400 回答
0
aggregate(Count~Year+Site+Location+Photo+Taxonomy,DF, function(ct) mean(ct[ct != 0]) )

这将根据每个组中的非零条目返回平均值。

于 2013-02-03T01:12:13.390 回答