A - How to calculate the price variation for different periods and companies?

Asked

Viewed 171 times

3

Hello, I would like to know how to calculate the price variation from one period to another. Being several years for several companies. Example:

Company | Year | Price

1 |2007 | 25

1 | 2008 | 30

1 |2009 | 7

1 |2010 | 15

2 |2007 | 20

2 | 2008 | 27

2 |2009 | 7

2 |2010 | 20

... |... |...|...

The new column would be:

Company | Year | Price | Variation

1 |2007 | 25 | 25-0 = 25

1 | 2008 | 30 | 30-25 = 5

1 |2009 | 7 | 7-30 = -23

1 |2010 | 15 | 15-7 = 8

2 |2007 | 20 | 20-0 = 20

2 | 2008 | 27 | 27-20 = 7

2 |2009 | 7 | 7-27 = -20

2 |2010 | 20 | 20-7 = 13

... |... |...|...

I have no idea how to do this.

would use the diff?

Thanks in advance !

1 answer

7


The function ave was made to solve these kinds of problems.

dados$Variação <- ave(dados$Preço, dados$Empresa, FUN = function(x) c(x[1], diff(x)))

DICE.

dados <-
structure(list(Empresa = c(1, 1, 1, 1, 2, 2, 2, 2), Ano = c(2007, 
2008, 2009, 2010, 2007, 2008, 2009, 2010), Preço = c(25L, 30L, 
7L, 15L, 20L, 27L, 7L, 20L)), .Names = c("Empresa", "Ano", "Preço"
), class = "data.frame", row.names = c(NA, -8L))
  • It worked, thank you !

Browser other questions tagged

You are not signed in. Login or sign up in order to post.