2014-07-25 3 views
0

연간 데이터가 몇 년이지만 가장 최근의 1 년 데이터 만있는 경우 ggplot2 및 geom_bar를 사용하여 가장 최근 연도의 막대를 연장하여 프로그래밍 할 수있는 방법이 있습니까? 파트 타임 데이터가 외삽 된 경우일까요?전체 연도 계산을 기반으로 geom_bar에 어떻게 추가 할 수 있습니까?

작은 예제가 있습니다. 2014 숫자가 반년 동안 있다고 가정합니다. '막대 상단에'동일한 양을 추가하는 방법, 즉 반년 데이터를 외삽하여 색을 다르게 채우는 방법이 있습니까?

yrs <- data.frame(Id = c(1, 2, 3), Year = c(2012, 2013, 2014), Amount = c(5e6, 6e6, 3e6)) 

ggplot(yrs, aes(x = Year, y = Amount)) + geom_bar(stat = "identity") 

답변

0

실제 수입과 예상 수입을 구분하기 위해 유형 변수를 추가하지 않는 이유는 무엇입니까? 당신이 그래프주기

ggplot(yrs, aes(x = Year, y = Amount,fill=type)) + geom_bar(stat = "identity") 

:

yrs <- data.frame(Id = c(1, 2, 3,4), Year = c(2012, 2013, 2014,2014), 
Amount = c(5, 6, 3, 4)) 


yrs$type <- c(rep("Actual",3),"Projected") 

당신은 다음과 같은 유형으로 설정 채우기 막대 차트를 그릴 수있는 데이터를 확장 마찬가지로 지금까지

enter image description here

을, R에서 예측할 수있는 많은 방법이 있습니다. 아마도 가장 간단한 모델은 선형 모델 lm을 사용하는 것입니다. 당신은 올해의 계수를 사용할 수 있습니다

Call: 
lm(formula = Amount ~ Year, data = yrs) 

Coefficients: 
(Intercept)   Year 
     -2007   1 

최신 년의 값을 "추정"하기 :

가장 최근 연도없이 데이터 세트를 사용하는 경우

, 실행 lm(Amount ~ Year, data = years) 당신은 같은 출력을 얻을 것이다. 따라서이 경우 2014 년의 추정치는 7이됩니다.

yrs$Amount[2] + linear_model$coeff[2] 
Year 
    7 
+0

@bjosoph! 고맙습니다. 당신의 제안은 내가 생각했던 것보다 훨씬 더 애호가 다. 내 생각에 부분적인 연도를 객체 YTD로 정의한 다음 YTD에 남은 월 수/경과 개월 수를 곱하는 객체 프로젝트를 만듭니다. 귀하의 숫자와 반년에 YTD는 6/6 또는 4의 4 배가됩니다. 그렇다면 ggplot은 YTD를 채우기 유형으로 어떻게 인식합니까? – lawyeR

+0

당신은'ytd' (또는 무엇이든)라는 새로운 컬럼을 만들 수 있고'acutal'과'projected' 두 값을주고'fill = ytd' 또는 여러분이 컬럼을 호출 한 것을 – bjoseph

관련 문제