2013-02-03 5 views
0

나는 많은 변수 (연도, 사이트, 위치, 그림 번호, 분류법 및 개수)를 사용하여 수년에 걸쳐 커다란 데이터 세트를 가지고 있습니다. Year, Site, Location에 대한 고유 한 변수는 데이터 세트를 통해 안정적이며 촬영 된 사진의 수는 대체로 안정적입니다 (때때로 한 위치에서 모든 사진을 찍는 것을 잊어 버립니다). 그러나 Taxonomy 변수를 설정 했으므로 특정 Taxon이 사진 세트에 없으면 해당 Taxon은 해당 사이트의 위치 데이터에 포함되지 않습니다 (제로 데이터 없음).알려진 누락 된 데이터로 평균을 계산하는 방법

하지만 몇 년 동안 평균 밀도를 계산할 때 계산에 표현 된 데이터가 0 인 것이 중요합니다.

다음은 내 데이터 테이블의 예입니다.

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 년 1 위치에서 발생하지 않습니다, 단지 생명이 완벽한한다면 2006 년

모든 제로 데이터의 마지막 위치에서 내 데이터 세트에 포함 된

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

또는

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

나는 지난 몇 년 동안 단지 사이트를보고 싶다면

.

"0"데이터가 없으면 모든 수단이 꺼져 있습니다.

모든 제로 데이터를 추가하는 코드를 작성하려고 시도했지만 데이터 세트가 괴물이되어 그 경로로 이동하지는 않을 것입니다.

+1

게시물에 '올바른'답변, 즉 원하는 답을 추가하는 것을 고려해보십시오. 또한 예제 데이터 세트의 크기를 줄이고 Count를 임의로 생성하는 경우 set.seed()를 사용합니다. 이것은 제안을하려는 사람들에게 도움이 될 것입니다. –

답변

1

평균 계산에서 누락 된 데이터를 명시 적으로 제외하므로, 문제의 항목을 합산하고 모든 항목을 개별적으로 계산하여 프레임 작업 외부에서 수행해야합니다. 항목 ...

+0

나는 수동으로 평균을 계산하려고 시도했지만 (sum/n), 사이트 당 n 장의 사진을 얻는 것은 어렵다. 나는 계산을 위해 내 n을 얻기 위해 집계 (Photo ~ Year + Site + Location, FUN = function (x) length (unique (x))의 라인을 따라 무언가를 시도했다. – Vinterwoo

+0

두 개의 계산이 필요합니다. 하나는 집계하고 하나는 모든 항목을 합산합니다. – dartdog

0
aggregate(Count~Year+Site+Location+Photo+Taxonomy,DF, function(ct) mean(ct[ct != 0])) 

이 값은 각 그룹 내의 0이 아닌 항목을 기준으로 평균값을 반환합니다.

관련 문제