Допустим, консалтинг ежемесячно публикует общие доходы фирм A и B в области альфа и бета, данные могут выглядеть следующим образом:
# generate data
foo <- expand.grid(month = 1:3, region = c("alpha", "beta"), firm = c("A", "B"), stringsAsFactors = FALSE)
foo <- foo[order(foo$month, foo$region),]
rownames(foo) <- 1:nrow(foo)
foo <- foo[c(-1,-6),]
revenue <- c(1.5, 2, 2.1, 1.2, 3, 5.5, 3.2, 5, 5, 6)
foo <- cbind(foo, revenue)
foo
## month region firm revenue
## 2 1 alpha B 1.5
## 3 1 beta A 2.0
## 4 1 beta B 2.1
## 5 2 alpha A 1.2
## 7 2 beta A 3.0
## 8 2 beta B 5.5
## 9 3 alpha A 3.2
## 10 3 alpha B 5.0
## 11 3 beta A 5.0
## 12 3 beta B 6.0
что я хочу делать, это рассчитывать доходы в каждом месяце. Но я не могу справиться со всеми этими ситуациями:
- В январе выручка за этот месяц равна общей выручке;
- Для нового филиала месяц, в котором он впервые показался, для других выглядит как январь;
- И некоторые данные будут потеряны, в следующем месяце выручка должна составлять NA.
В основном, результат:
result <- c(1.5, 2, 2.1, 1.2, 1, 3.4, 2, NA, 2, 0.5)
res <- cbind(foo, result)
res
## month region firm revenue result
## 2 1 alpha B 1.5 1.5
## 3 1 beta A 2.0 2.0
## 4 1 beta B 2.1 2.1
## 5 2 alpha A 1.2 1.2 ## a new branch launched by A at alpha in Feb.
## 7 2 beta A 3.0 1.0
## 8 2 beta B 5.5 3.4
## 9 3 alpha A 3.2 2.0
## 10 3 alpha B 5.0 NA ## the data of B at alpha in Feb. is missing
## 11 3 beta A 5.0 2.0
## 12 3 beta B 6.0 0.5
Заранее спасибо ~