2012-07-30 3 views
0

나는 한 달을 기준으로 데이터를 요약하려고합니다. 나는 각 월별로 요약 응용 프로그램 데이터를 수 있도록하고 싶습니다총 칼럼은 r 단위로 계산됩니다.

x 
     Date App Vol 
1 2010-01-30 A 100 
2 2010-01-28 B 140 
3 2010-01-30 C 160 
4 2010-02-28 A 110 
5 2010-02-28 B 120 
6 2010-02-28 C 300 

예를 들어,이 데이터 세트를 가지고있다. 상기 데이터 프레임에 따르면, A는210 = 260 B, C이어야 = 460 등

I 아래 집계 기능 ASE를 사용하지만 에러 얻고

:

y<-aggregate(x$Vol, list(Month = format(as.POSIXct(x$Date), "%Y-%m")), sum) 

어떤 아이디어?

+0

게시물에 대한 내 말미가 오타가되어서 문제가되지 않습니다. –

+0

@Mike는 ttmaccer의 제안과 코드를 사용하여 제게 적합합니다. –

+0

@ 타일러 링커,이 오류가 발생합니다 : Summary.factor (c (1L, 3L, 6L, 36L), na.rm = FALSE) 오류 : 요소에 대해 합계가 의미가 없습니다 –

답변

1

시작은 숫자로 Vol 선회와 함께 (어떻게 든 엉망있어) :

x$Vol <- as.numeric(as.character(x$Vol)) 

나는 요인으로 Vol를 켜서 eror을 재현 할 수 있습니다 여기에서 볼 수 있듯이 : 또한

x$Vol <- as.factor(x$Vol) 
aggregate(x$Vol, list(x$App), sum) 

#> aggregate(x$Vol, list(x$App), sum) 
#Error in Summary.factor(1:2, na.rm = FALSE) : 
# sum not meaningful for factors 

는 말 :

I would like to be able to summary App data by each month. According to the 
data frame above, A should be 210, B = 260, C=460 etc. 

사용하는 경우 :

x$Month <- format(as.POSIXct(x$Date), "%Y-%m") 
aggregate(x$Vol, list(x$Month, x$App), sum) 

그렇지 않으면 ttmacer 님의 제안을 사용하십시오.

+0

예 x $ Vol를 숫자로 변환해야했습니다. 위대한 캐치. 고맙습니다. –

0
x<-read.table(header=T,text="Date  App Vol 
    1 2010-01-30 A  100 
    2 2010-01-28 B  140 
    3 2010-01-30 C  160 
    4 2010-02-28 A  110  
    5 2010-02-28 B   120  
    6 2010-02-28 C   300") 



y<-aggregate(x$Vol, list(Month = format(as.POSIXct(x$Date), "%Y-%m")), sum) 
y<-aggregate(x$Vol, list(x$App), sum) 

이 데이터를 사용해보십시오.

+0

을 사용하면 Summary.factor (c (1L, 3L, 6L, 36L), na) 오류가 발생합니다. rm = FALSE) : 요소에 대한 합계가 아님 –

관련 문제