2010-08-09 7 views
2

R에서는 하루 종일 기록 된 다양한 통계의 데이터 프레임이 있습니다. (예 : 심장 박동수). 각 측정 항목에 대한 타임 스탬프가 자동으로 만들어지고 이미 POSIXt 클래스 요소로 변환되었습니다.일별/주별/월별 요약 통계 계산

관찰 횟수는 날마다 다릅니다.

나는 일별/주별/월별 요약 통계를 어떻게 계산할 수 있는지 궁금합니다.

답변

2

tapplyformat을 사용하십시오.

예 :

> tst<-data.frame(date=as.POSIXct(runif(1000)*31557600,origin="2010/8/9"),value=runif(1000)) 

> tapply(tst$value,format(tst$date,"%a"),summary) 
$Fri 
    Min. 1st Qu. Median  Mean 3rd Qu.  Max. 
0.001545 0.238900 0.499600 0.484700 0.697000 0.996400 

$Mon 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
0.02029 0.25100 0.49100 0.49910 0.75530 0.99120 

$Sat 
    Min. 1st Qu. Median  Mean 3rd Qu.  Max. 
0.003557 0.245600 0.493600 0.499200 0.754600 0.996200 

$Sun 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
0.01867 0.22340 0.52750 0.51260 0.80500 0.97760 

$Thu 
    Min. 1st Qu. Median  Mean 3rd Qu.  Max. 
0.003691 0.281200 0.600600 0.546800 0.790800 0.973000 

$Tue 
    Min. 1st Qu. Median  Mean 3rd Qu.  Max. 
0.009304 0.253400 0.488900 0.510300 0.772200 0.997100 

$Wed 
    Min. 1st Qu. Median  Mean 3rd Qu.  Max. 
0.002854 0.236200 0.400600 0.473500 0.742900 0.988600 

당신은 ?strptime를 참조 맞게 다른 코드로 format에서 %a를 교체 할 수 있습니다. 월은 %b이고 주 번호는 %U입니다.

+0

의 두 번째 열에 대해 월별로 요약 통계를 얻기 위해 이런 식으로 뭔가를 시도 할 수 있습니다. 고맙습니다. – CGN

+0

문제 없습니다. 보다 진보 된 분석을 위해서'plyr' 패키지의'ddply' 기능이 유용합니다. – James

+0

Nice - 필자는 필요한 그룹화 변수를 얻기 위해 날짜를 다시 포맷하는 방식을 좋아합니다. –

2

당신은 당신의 dataframe 속임수를 썼는지

library(plyr) 
library(fBasics) 
dlply(my_dataframe,.(format(date_Column, "%m %y")),function(x) basicStats(x[2]))