Newb ie: у меня есть набор данных, в котором я хочу рассчитать рост продаж компании по сравнению с прошлым годом. Набор данных содержит ок. 1000 компаний с разным количеством лет котируются на фондовой бирже c. Данные выглядят так:
# gvkey fyear at company name
#22 17436 2010 59393 BASF SE
#23 17436 2011 61175 BASF SE
#24 17436 2012 64327 BASF SE
...
#30 17436 2018 86556 BASF SE
#31 17828 1989 62737 DAIMLER AG
#32 17828 1990 67339 DAIMLER AG
#33 17828 1991 75714 DAIMLER AG
...
#60 17828 2018 281619 DAIMLER AG
Я хотел бы создать новый столбец growth
, где я рассчитываю процентное увеличение на at
, например, от BASF SE (gvkey 17436) с 2010 по 2011 год, до 2012 и так далее. В строке № 31 условный оператор должен работать так, что он не будет рассчитывать увеличение на основе значений, которые принадлежат BASF, а скорее имеет значение NA. Поэтому следующим значением в этом новом столбце «рост» в строке 32 будет процентное увеличение DAIMLER (gvkey 17828) с 62727 до 67339
Пока я пытался:
if TA$gvkey == lag(TA$gvkey) {mutate(TA, growth = (at - lag(at))/lag(at))} else {NULL}
В основном Я попытался обусловить вычисление изменением идентификатора gvkey, так как это имеет для меня наибольшее значение Я считаю, что есть лучший способ запустить al oop до тех пор, пока gvkey не изменится и перейти к следующему набору значений - но я просто не знаю, как это кодировать.
Я очень новичок к R и совсем потерян. Буду признателен за любую поддержку! Спасибо, ребята:)