R 如何根据全年计算添加到几何图形栏?

R 如何根据全年计算添加到几何图形栏?,r,ggplot2,R,Ggplot2,如果您有几年的年度数据,但只有最近一年的部分年份数据,是否有一种编程方式来扩展最近一年的条形图,大概使用ggplot2和geom_条形图,以指示如果部分年份数据被外推,全年将是什么 这里有一个小例子。假设2014年的数字是半年。是否有一种方法可以添加相同数量的“条顶”,即推断半年数据,并以不同的颜色或填充 yrs <- data.frame(Id = c(1, 2, 3), Year = c(2012, 2013, 2014), Amount = c(5e6, 6e6, 3e6)) gg

如果您有几年的年度数据,但只有最近一年的部分年份数据,是否有一种编程方式来扩展最近一年的条形图,大概使用ggplot2和geom_条形图,以指示如果部分年份数据被外推,全年将是什么

这里有一个小例子。假设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") 

yrs为什么不添加一个类型变量来区分实际收入和预计收入,类似这样

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")
给你这个图表:

就扩展数据而言,在R中有许多预测方法。也许最简单的方法是使用线性模型:
lm

如果您使用的数据集没有最近一年的数据,并运行
lm(Amount~year,data=years)
您将得到如下输出:

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

 Coefficients:
 (Intercept)         Year
       -2007            1
您可以使用年系数“外推”最新年份的值。因此,在这种情况下,我们对2014年的外推值为7

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

@比约索夫,太棒了!非常感谢。你的lm建议比我想象的要有趣得多。我的想法是将部分年份定义为对象YTD,然后创建一个对象项目,该项目将YTD乘以年中剩余的月数/经过的月数。根据你一年半的数据,YTD等于4乘以6/6或4。但是,如何让ggplot识别填充类型的YTD呢?您可以创建一个名为
YTD
(或其他)的新列,并为其指定两个值
acutal
projected
,然后只需执行
fill=YTD
或任何您称为该列的操作
yrs$Amount[2] + linear_model$coeff[2]
 Year
    7