2009-11-27 6 views
1

처음에는 아주 단순한 질문이지만 R에 매우 익숙합니다. 제 질문은 이처럼 보이는 데이터 프레임이 있다는 것입니다.매우 단순한 막대 그래프

countrydes  Insured 

USA    4500 
CANADA   4500 
USA    7500 
CANADA   7600 

내가 원하는 것은 국가 별 보험 금액 합계를 집계하여 막대 그래프를 생성하는 것입니다.

countrydes  Insured 

USA    12000  
Canada    12100 

감사합니다.

+0

고마워. 그 덕분에 내 인생이 훨씬 쉬워졌다. –

답변

2

간단히 합계 할 수 있습니다. df :

USA <- sum(df[df$countrydes=="USA",]$Insured) 
CANADA <- sum(df[df$countrydes=="CANADA",]$Insured) 

그러나 aggregate()를 사용하면 모든 국가를 한 줄로 처리 할 수 ​​있습니다.

aggsumcount <- aggregate(x=df$Insured,by=list(df$countrydes),FUN=sum) 
3

이 트릭 할 것입니다 : (. Etiennebr가 언급 한 바와 같이, 당신은 by 대신 aggregate를 사용할 수 있습니다, 당신은 목록으로 countrydes을 강요해야하는 경우)

# Define your data 
dfr <- data.frame(
    countrydes=rep(c("USA", "CANADA"), 2), 
    Insured=c(4500, 4500, 7500, 7600)) 
# Sum by country 
totals <- with(dfr, by(Insured, countrydes, sum)) 
# Plot the answer 
barplot(totals) 

관련 문제