2016-04-12 3 views
0

У меня есть кадр данных, который отображает данные о продажах, разделенные на год и квартал. Что я хочу сделать, так это график спроса на цену, однако мне хотелось бы видеть цену как отличие от среднегодовой цены.Получение подмножества в data.frame

То, что я до сих пор является

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 

Конечно проблема с этим состоит в том, что среднее() использует все данные не только данные от каждого года отдельно.

+0

Пожалуйста, покажите воспроизводимый пример. – akrun

+1

Использование 'ggplot2' и' dplyr' 'sales_data%>% group_by (Year)%>% mutate (Price = Price - mean (Price))%>% ggplot (., Aes (x = Price, y = Demand)) + geom_point() ' – akrun

ответ

1

используя базу функции

plot(unlist(by(sales_data, sales_data$Year, function(x) x$Price - mean(x$Price))),Demand) 
Смежные вопросы