はい、もうなんでもいいから小出しで記事更新を試みます。 まず書く。
ということで、世のデータサイエンティストさんとは縁遠い、「平均年齢の求め方」を書きます。 dplyrで。
しかも割とこう、スマートではない感じです。
↓こういう数表があったとき、意外と結構な人が そのまま人数合計しちゃったりするわけですが(いや意味わからんけども)、 じゃぁそれをdplyrでやるとどうなるかをちょっとやってみました (単に仕事で計算したからネタにしただけです)。
年齢 | 人数 |
---|---|
20代 | 150 |
30代 | 15 |
40代 | 1500 |
50代 | 1 |
require(tidyverse) # 平均年齢を計算する(加重平均) df <- data.frame(kind = letters[1:5], age = c(11,12,13,14,15,16,17,18,19,20, NA), uniq_count = sample(x = c(1:1000), size = 55)) df %>% group_by(kind) %>% mutate(sum_ageuniq = age * uniq_count) %>% summarise_at(.vars = 4, funs(ave_age = sum(sum_ageuniq, na.rm = TRUE) / sum(uniq_count, na.rm = TRUE), total_user = sum(uniq_count, na.rm = TRUE)))
mutate部分をsummariseの中でやりゃ一発かしらね。
まぁ、とりあえず。