#Data
revenue <- c(14574.49, 7606.46, 8611.41, 9175.41, 8058.65, 8105.44, 11496.28, 9766.09, 10305.32, 14379.96, 10713.97, 15433.50)
expenses <- c(12051.82, 5695.07, 12319.20, 12089.72, 8658.57, 840.20, 3285.73, 5821.12, 6976.93, 16618.61, 10054.37, 3803.96)

#Solution

#profit for each month
profit <- revenue- expenses
profit
 [1]  2522.67  1911.39 -3707.79 -2914.31  -599.92  7265.24  8210.55  3944.97  3328.39 -2238.65   659.60
[12] 11629.54
#profit after tax for each month (the tax rate is 30%)
tax <- round(profit * 0.3, digits = 2)
tax
 [1]   756.80   573.42 -1112.34  -874.29  -179.98  2179.57  2463.17  1183.49   998.52  -671.60   197.88
[12]  3488.86
profit.after.tax <- profit - tax
profit.after.tax
 [1]  1765.87  1337.97 -2595.45 -2040.02  -419.94  5085.67  5747.38  2761.48  2329.87 -1567.05   461.72
[12]  8140.68
#profit margin for each month - equals to profit after tax divided by revenue
profit.margin <- round(profit.after.tax / revenue,2) * 100
profit.margin
 [1]  12  18 -30 -22  -5  63  50  28  23 -11   4  53
#good months- where the profits after tax was greter than the mean for the year
mean_pat <- mean(profit.after.tax)
mean_pat
[1] 1750.682
good.months <- profit.after.tax > mean_pat
good.months
 [1]  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE
#bad months- where the profits after tax was less sthan the mean for the year
bad.months <- !good.months
bad.months
 [1] FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE
#the best month- where the profits after tax was max for the year
best.month <- profit.after.tax == max(profit.after.tax)
best.month
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
#the worst month- where the profit after tax was min for the year
worst.month <- profit.after.tax == min(profit.after.tax)
worst.month
 [1] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
#units of thousands
revenue.1000 <- round(revenue/1000)
expenses.1000 <- round(expenses/1000)
profit.1000 <- round(profit/1000)
profit.after.tax.1000 <- round(profit.after.tax/1000)


#output
revenue.1000
 [1] 15  8  9  9  8  8 11 10 10 14 11 15
expenses.1000
 [1] 12  6 12 12  9  1  3  6  7 17 10  4
profit.1000
 [1]  3  2 -4 -3 -1  7  8  4  3 -2  1 12
profit.after.tax.1000
 [1]  2  1 -3 -2  0  5  6  3  2 -2  0  8
profit.margin
 [1]  12  18 -30 -22  -5  63  50  28  23 -11   4  53
good.months
 [1]  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE  TRUE
bad.months
 [1] FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE
best.month
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
worst.month
 [1] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
#matrices
m <- rbind(
  revenue.1000,
  expenses.1000,
  profit.1000,
  profit.after.tax.1000,
  profit.margin,
  good.months,
  bad.months,
  best.month,
  worst.month
)
m
                      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
revenue.1000            15    8    9    9    8    8   11   10   10    14    11    15
expenses.1000           12    6   12   12    9    1    3    6    7    17    10     4
profit.1000              3    2   -4   -3   -1    7    8    4    3    -2     1    12
profit.after.tax.1000    2    1   -3   -2    0    5    6    3    2    -2     0     8
profit.margin           12   18  -30  -22   -5   63   50   28   23   -11     4    53
good.months              1    0    0    0    0    1    1    1    1     0     0     1
bad.months               0    1    1    1    1    0    0    0    0     1     1     0
best.month               0    0    0    0    0    0    0    0    0     0     0     1
worst.month              0    0    1    0    0    0    0    0    0     0     0     0
LS0tCnRpdGxlOiAiRmluYW5jaWFsIFN0YXRlbWVudCBBbmFseXNpcyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCgpgYGB7cn0KI0RhdGEKcmV2ZW51ZSA8LSBjKDE0NTc0LjQ5LCA3NjA2LjQ2LCA4NjExLjQxLCA5MTc1LjQxLCA4MDU4LjY1LCA4MTA1LjQ0LCAxMTQ5Ni4yOCwgOTc2Ni4wOSwgMTAzMDUuMzIsIDE0Mzc5Ljk2LCAxMDcxMy45NywgMTU0MzMuNTApCmV4cGVuc2VzIDwtIGMoMTIwNTEuODIsIDU2OTUuMDcsIDEyMzE5LjIwLCAxMjA4OS43MiwgODY1OC41NywgODQwLjIwLCAzMjg1LjczLCA1ODIxLjEyLCA2OTc2LjkzLCAxNjYxOC42MSwgMTAwNTQuMzcsIDM4MDMuOTYpCgojU29sdXRpb24KCiNwcm9maXQgZm9yIGVhY2ggbW9udGgKcHJvZml0IDwtIHJldmVudWUtIGV4cGVuc2VzCnByb2ZpdAoKI3Byb2ZpdCBhZnRlciB0YXggZm9yIGVhY2ggbW9udGggKHRoZSB0YXggcmF0ZSBpcyAzMCUpCnRheCA8LSByb3VuZChwcm9maXQgKiAwLjMsIGRpZ2l0cyA9IDIpCnRheAoKcHJvZml0LmFmdGVyLnRheCA8LSBwcm9maXQgLSB0YXgKcHJvZml0LmFmdGVyLnRheAoKI3Byb2ZpdCBtYXJnaW4gZm9yIGVhY2ggbW9udGggLSBlcXVhbHMgdG8gcHJvZml0IGFmdGVyIHRheCBkaXZpZGVkIGJ5IHJldmVudWUKcHJvZml0Lm1hcmdpbiA8LSByb3VuZChwcm9maXQuYWZ0ZXIudGF4IC8gcmV2ZW51ZSwyKSAqIDEwMApwcm9maXQubWFyZ2luCgojZ29vZCBtb250aHMtIHdoZXJlIHRoZSBwcm9maXRzIGFmdGVyIHRheCB3YXMgZ3JldGVyIHRoYW4gdGhlIG1lYW4gZm9yIHRoZSB5ZWFyCm1lYW5fcGF0IDwtIG1lYW4ocHJvZml0LmFmdGVyLnRheCkKbWVhbl9wYXQKZ29vZC5tb250aHMgPC0gcHJvZml0LmFmdGVyLnRheCA+IG1lYW5fcGF0Cmdvb2QubW9udGhzCgojYmFkIG1vbnRocy0gd2hlcmUgdGhlIHByb2ZpdHMgYWZ0ZXIgdGF4IHdhcyBsZXNzIHN0aGFuIHRoZSBtZWFuIGZvciB0aGUgeWVhcgpiYWQubW9udGhzIDwtICFnb29kLm1vbnRocwpiYWQubW9udGhzCgojdGhlIGJlc3QgbW9udGgtIHdoZXJlIHRoZSBwcm9maXRzIGFmdGVyIHRheCB3YXMgbWF4IGZvciB0aGUgeWVhcgpiZXN0Lm1vbnRoIDwtIHByb2ZpdC5hZnRlci50YXggPT0gbWF4KHByb2ZpdC5hZnRlci50YXgpCmJlc3QubW9udGgKCiN0aGUgd29yc3QgbW9udGgtIHdoZXJlIHRoZSBwcm9maXQgYWZ0ZXIgdGF4IHdhcyBtaW4gZm9yIHRoZSB5ZWFyCndvcnN0Lm1vbnRoIDwtIHByb2ZpdC5hZnRlci50YXggPT0gbWluKHByb2ZpdC5hZnRlci50YXgpCndvcnN0Lm1vbnRoCgojdW5pdHMgb2YgdGhvdXNhbmRzCnJldmVudWUuMTAwMCA8LSByb3VuZChyZXZlbnVlLzEwMDApCmV4cGVuc2VzLjEwMDAgPC0gcm91bmQoZXhwZW5zZXMvMTAwMCkKcHJvZml0LjEwMDAgPC0gcm91bmQocHJvZml0LzEwMDApCnByb2ZpdC5hZnRlci50YXguMTAwMCA8LSByb3VuZChwcm9maXQuYWZ0ZXIudGF4LzEwMDApCgoKI291dHB1dApyZXZlbnVlLjEwMDAKZXhwZW5zZXMuMTAwMApwcm9maXQuMTAwMApwcm9maXQuYWZ0ZXIudGF4LjEwMDAKcHJvZml0Lm1hcmdpbgpnb29kLm1vbnRocwpiYWQubW9udGhzCmJlc3QubW9udGgKd29yc3QubW9udGgKCiNtYXRyaWNlcwptIDwtIHJiaW5kKAogIHJldmVudWUuMTAwMCwKICBleHBlbnNlcy4xMDAwLAogIHByb2ZpdC4xMDAwLAogIHByb2ZpdC5hZnRlci50YXguMTAwMCwKICBwcm9maXQubWFyZ2luLAogIGdvb2QubW9udGhzLAogIGJhZC5tb250aHMsCiAgYmVzdC5tb250aCwKICB3b3JzdC5tb250aAopCm0KYGBgCgoK