获取data.frame中子集的均值

时间:2016-04-12 02:58:25

标签: r

我有一个显示销售数据的数据框,按年份和季度进行拆分。 我想做的是关于价格的需求情节,但我希望看到价格与年平均价格不同。

到目前为止我所拥有的是

Year <- c(1,1,1,2,2,2,2)
Quarter <- c(1,2,3,4,1,2,3,4)
Price <- c(10,15,20,15,15,20,20,25)
Demand <- c(12,15,10,12,10,15,12,12)
sales_data <- data.frame(Year, Quarter, Price, Demand)
attach(sales_data)    
plot(Price-mean(Price),Demand)
#Correct prices:
#year1 -5,0,5,0
#year2 -5,0,0,5

当然,问题在于,mean()不仅使用每年的数据而且还使用每年的数据。

1 个答案:

答案 0 :(得分:1)

使用base by function

plot(unlist(by(sales_data, sales_data$Year, function(x) x$Price - mean(x$Price))),Demand)