データ分析メモと北欧生活

旧Untitled Note. データ分析、計量経済・統計とR、水産管理、英語勉強、海外生活などについて備忘録や自分の勉強のOutputの場所として

MENU

【R】データ入力するだけで更新可能な履歴書(CV)を作る

これ日本だとあまり浸透してないかもしれないんですが、海外では履歴書ってわりと形式が自由です。

学歴・職歴とかを書くのは変わりないんですが、細かい形式は指定されてない事が多いので、見やすければいいということで、ワードにベタ書きする人もいれば、Latexできっちり組む人、またイラストレーターなどでデザイン性にオリジナリティを出してくる人など様々。

アカデミックなところでは、職歴・学歴に加えて業績(出版歴や発表歴)を書くのが主流です。こういった業績はいちいち更新していかなくてはいかないので、わりと面倒なところがあります。
一方で、最近では履歴書(CV)をウェブに公開しておくことで就職や転職の機会を広げておいたり、他の人に自分を知ってもらうことが多くなっているので最新の状態にキープして公開しておくのは重要です。

そこで最近、twitterでRでCVを作ってしまう人が現れました。

github.com

pagedownというパッケージを使ってるのですが、この人のやり方のイケてるところはgoogle sheetでシンプルに内容のリストを作ったものを、そのままCVという形に反映できるところです。

この方法なら、更新自体はスプレッドシートに内容を入力してRmdをレンダリングするだけで更新できます。

やり方

まずレポジトリをクローン

やり方は簡単で、まず上のレポジトリをフォーク・クローンして中身をzipでダウンロードします。

Google スプレッドシートをコピー・編集

そして、このニックさんのGoogle スプレッドシートをコピーして、自分用に編集します。
https://docs.google.com/spreadsheets/d/14MQICF2F8-vf8CKPF1m4lyGKO6_thG-4aSwat1e2TWc/edit#gid=1730172225docs.google.com

f:id:keita43a:20200220224941p:plain

このとき、主要なコンテンツはpositionタブの中身になります。
一番左のsectionという列がそれぞれのカテゴリを表します。educationなら教育など。
自分で追加することも可能です。(追加するとRmdの方にも追加する必要があります。)

ポジション名や項目、住所などを入れていきます。右のdescriptionというところには任意で説明を追加できます。
なぜかlocという列が会社名・大学名などで、institutionsと書いてある列が住所っぽく表示されるので、注意が必要です。
一番右のin_resumeという列がFALSEならCVに表示しない設定にできます。

language skillsタブでは、自分のスキルを棒グラフで表示できるようになってますが、スキルの数値は5点満点で、自己申告っぽいです(笑)。

text_blocksタブではCV内の各場所にあるコメントを追加できます(例えば冒頭の自己紹介など)。

contact_infoには連絡先・SNSの情報を入れます。

Rmdファイルの各項目を編集

R markdownのファイルを編集します。
Asideとなっているところから下は右側の色のついた部分に入っている項目を設定します。ロゴ・連絡先やSNS・スキルなどが入ります。

Aside
================================================================================

Mainから下が主に左側のエリアの項目です。

Main
================================================================================

Nick Strayer {#title}
--------------------------------------------------------------------------------

このNickさんのところを自分の名前に変えます。


下のような線が引かれてるところがセクションタイトルになっています。
このdata-iconというのはpagedownの機能で、このサイトにあるアイコンを指定できるみたいです。

Teaching Experience {data-icon=chalkboard-teacher}
--------------------------------------------------------------------------------

下記のようなasideとなっている部分は右の色のついた列に入る項目で、その部分に関するコメントなどが入っています。

::: aside
```{r}
print_text_block(text_blocks, 'teaching_experience_aside')
```
:::


個人的には、language skills (コンピューター言語)のところに、自然言語(英語とか)も入れたかったので、スプレッドシートに新たにlanguageというタブを足し、英語・日本語・ノルウェー語を
設定し、gather_data.Rというファイルの中で、以下のようにデータ取得のラインを一本足しました。

  position_data <- read_sheet(positions_sheet_loc, sheet = "positions")
  skills        <- read_sheet(positions_sheet_loc, sheet = "skills")
  lang        <- read_sheet(positions_sheet_loc, sheet = "language")
  text_blocks   <- read_sheet(positions_sheet_loc, sheet = "text_blocks")
  contact_info  <- read_sheet(positions_sheet_loc, sheet = "contact_info", skip = 1)

そして、Rmdの中でbuild_skill_barsという関数を使う項目を一つ足しました。

Language {#lang}
--------------------------------------------------------------------------------

```{r}
build_skill_bars(lang)
```


すべて編集してknitすれば出来上がりです。

文字化け問題

共著者にノルウェー人がいるので、ノルウェー語のウムラウトに当たるアルファベットで名前を表記していたら、その部分が文字化けしました。pagedownもR markdowmもエンコーディングUTF-8のはずなのに、と思っていたら、Google スプレッドシートを読むgooglesheets4パッケージが使うgargleパッケージに問題があったようです。この記事の通り、devtools::github_install(’r-lib/gargle')でデベロッパーバージョンをインストールすると問題が解決しました。日本語ではまだ書いてませんが、同じ問題が起きるかもしれないので参考までに。なおgargleのインストールにrlang 0.4.1以上のバージョンがいるということで、それもインストールし直しました。

github.com

Github pagesでシェア

レポジトリで管理しているのでそのままpushして、githubページを使ってしまえば公開できます。

Github pagesについてはこちらの記事が参考になりました。
techacademy.jp

完成品

こちらが完成したCVです。対して業績も出ていないので恥ずかしいのですが、載せておきます。
f:id:keita43a:20200220225250p:plain

keita43a.github.io

github.com


レポジトリに入っているCSSも少しいじって色などを変えています。