Я хотел бы создать новую метку в существующем столбце (например, столбец A) и создать вычисленное значение в той же строке в другом существующем столбце (например, столбец B).
Моделируемые данные выглядят следующим образом:
df <- data.frame(date = as.Date(c("31-Dec-2018", "31-Dec-2018", "31-Dec-2018", "30-Sep-2018", "30-Sep-2018", "30-Jun-2018", "30-Jun-2018",
"31-Mar-2018", "31-Mar-2018"), format = "%d-%b-%Y"),
metric = c("Revenue", "Profit", "Restructuring Cost", "Revenue", "Profit", "Revenue", "Profit", "Revenue", "Profit"),
value = c(100, 50, 10, 100, 50, 90, 44, 97, 60))
Есть три столбца (дата, финансовый показатель и соответствующее значение для этого финансового показателя на эту конкретную дату).Например, я хотел бы рассчитать маржу чистой прибыли для каждой даты (Прибыль за конкретную дату, деленная на выручку за ту же дату).Однако mutate
делает это неправильно;он создает новый вычисляемый столбец.Я хочу, чтобы метка «Чистая маржа» создавалась в существующем столбце «Метрика», а соответствующее значение чистой маржи в столбце «Значение».
То, что я сделал до сих пор (что неверно), - этоследующее:
test <- df %>%
group_by(date) %>%
mutate(net_margin = round(value/lag(value), digits = 2))
Я также не уверен, как вызвать метрику.В приведенном выше коде используется значение предыдущей строки, но это не всегда так.
Желаемый результат будет выглядеть примерно так:
![Example](https://i.stack.imgur.com/eQwTt.png)
Спасибо!