先日、JuliaでOSを判別する方法を書きました。
Rでも同じことをやりたい場合があるので、メモしておきます。Sys.info()
関数を使うと、システムについてのさまざまな情報が得られます。その中でもsysname
がOSの種類を取ってくるものです。
if (Sys.info()["sysname"] == "Darwin") { setwd("/Volumes/GoogleDrive/マイドライブ/") } else { setwd("G:/マイドライブ/") }
先日、JuliaでOSを判別する方法を書きました。
Rでも同じことをやりたい場合があるので、メモしておきます。Sys.info()
関数を使うと、システムについてのさまざまな情報が得られます。その中でもsysname
がOSの種類を取ってくるものです。
if (Sys.info()["sysname"] == "Darwin") { setwd("/Volumes/GoogleDrive/マイドライブ/") } else { setwd("G:/マイドライブ/") }
普段使用しているコンピュータが2台あります。一つはMacBook Proで、もう一つは自作のWindows PCです。それらのあいだでデータの共有・同期を行うのにはGoogle Driveを使用しています。
Juliaについても同様で、Google Driveに_julia
という名前のディレクトリを作って、その中にいろいろなユーティリティを入れてあります。パッケージ化していないものについてはinclude()
で読み込むようにしているのですが、Google Driveの場所がMac(/Volumes/GoogleDrive内)とWin(Gドライブ内)とで違うので、使用しているOSの判別をして適切なディレクトリ名を指定する必要があります。
JuliaでOSの判別をするときにはSys.KERNEL
も使えますが、おそらくSys.isapple()
などを使うのが良いのでしょう。例えば僕のコードでは以下のようにOSの判別をさせています。
if Sys.isapple() include("/Volumes/GoogleDrive/マイドライブ/_julia/audioutils.jl"); elseif Sys.iswindows() include("g:\\マイドライブ\\_julia\\audioutils.jl"); end
詳しくは以下の公式ドキュメントをどうぞ。
給油日 | オドメーター (km) | 給油量 (L) | 単価 (円/L) | 燃費 (km/L) | 距離単価 (円/km) |
---|---|---|---|---|---|
2020-02-22 | 10890.0 | 2.67 | 141.95 | 51.20 | 2.77 |
2020-03-16 | 11037.1 | 3.46 | 138.73 | 42.51 | 3.26 |
2020-03-20 | 11217.6 | 2.83 | 133.92 | 63.78 | 2.10 |
2020-03-21 | 11407.0 | 3.11 | 142.12 | 60.90 | 2.33 |
2020-03-22 | 11612.2 | 3.50 | 138.57 | 58.63 | 2.36 |
2020-09-21 | 11760.8 | 3.04 | 130.59 | 48.88 | 2.67 |
じつに半年ぶりの給油。遠出をする雰囲気でもないし、職場や買物に行くなどの短距離くらいしか乗っていなかったので燃費も悪くなってしまった。新しいバイクを買おうと思っていたのも無期延期になってしまったしな……。
こんど発売になるPlay Station 5は第9世代のゲームコンソールだということなんですが、ここで出てくる世代ってなんだろう?と思いました。Play Station 5が第9世代なら、そこからさかのぼっていけばPlay Station 1は第5世代。スーパーファミコンが第4世代、ファミコンが第3世代。その前って? ……もしかして第2世代がカセットビジョンとかAtariとか? それじゃ第1世代は何になるの?
Wikipediaなどで調べてみたところ、据え置きタイプについては次のようになっているようです。太字は僕が所有していたことがあるもの。
SwitchとPS5とかは性能も方向も違うので同じ世代に分類してしまっていいのか疑問。Switchはどちらかというと遅れてやって来た第8世代なのではないかという気もするし。
Wikipediaには携帯タイプも世代分類がされているのだけど、据え置き機として第9世代に入っているNintendo Switchが携帯機としては第8世代になっていたりして不思議な感じ。任天堂とソニーの携帯ハードはすべての世代のものを持ってるなぁ。PCエンジンGTやワンダースワンも持ってた。なんとなく携帯タイプのほうが好きなのかも。
先月のエントリでRを使って東京都の新規陽性者数を取得してくるプログラムを作りました。
今日はそれをJuliaでやってみたいと思います。とは言っても、Rでやっていることとほとんど同じで、HTTP
パッケージを使って東京都のサイトにアクセスし、CSV
で読み込んできたものを、DataFrames
でデータフレームにしているだけです。
using DataFrames, CSV, HTTP # read data from prefectural government website of Tokyo daturl = "https://stopcovid19.metro.tokyo.lg.jp/data/130001_tokyo_covid19_patients.csv"; dat = CSV.read(HTTP.get(daturl).body, header=1); ## data cleaning dat2 = DataFrame(公表日 = CategoricalArray(dat[:,5]), 居住地 = CategoricalArray(dat[:,8]), 年代 = CategoricalArray(dat[:,9]), 性別 = CategoricalArray(dat[:,10]), 退院済 = CategoricalArray(dat[:,16])) ## summarize describe(dat2)
実行結果は以下のようになります。
julia> describe(dat2) 5×8 DataFrame. Omitted printing of 1 columns │ Row │ variable │ mean │ min │ median │ max │ nunique │ nmissing │ │ │ Symbol │ Nothing │ CategoricalValue… │ Nothing │ CategoricalValue… │ Int64 │ Union… │ ├─────┼──────────┼─────────┼────────────────────┼─────────┼────────────────────┼─────────┼──────────┤ │ 1 │ 公表日 │ │ Date("2020-01-24") │ │ Date("2020-08-14") │ 178 │ │ │ 2 │ 居住地 │ │ - │ │ - │ 8 │ 389 │ │ 3 │ 年代 │ │ - │ │ 不明 │ 13 │ │ │ 4 │ 性別 │ │ - │ │ 男性 │ 5 │ │ │ 5 │ 退院済 │ │ 1 │ │ 1 │ 1 │ 6507 │
あとは煮るなり焼くなり……。
十代のころから献血を続けています。特に学生の頃は献血ルームまで徒歩2分のアパートに住んでいたこともあって、月初めの土曜日は献血というかんじの生活をしていました(残念ながら、その献血ルームは今年3月に閉所となってしまいました……その地方唯一の血液センターだったのに……)。
東京で暮らすようになってからも時間を見つけては献血ルームに通っていましたが、あまり都合が合わなくなり年1~2回という頻度になってしまっています。
このCOVID-19の状況下で血液センターに出かけるのを自粛する人も多いのでしょう、今朝「すべての血液型の血液が足りません」というメールが届きました。前回の献血から十分な期間があいていましたし、近くで献血できるところがあればすぐにでも行こうと思ってはいました。そこで、さっそく日本赤十字社のページで献血車のスケジュールを調べたところ、ちょうど職場のそばに来ていたので、職場に置いてあるものを取りに行くついでに献血に行ってきました。
ふだんは献血ルームに行くので、献血車での献血は久しぶりです。事前の血液検査は指先に針を刺すだけ(献血車では全血献血しかやらないのでこの方法で良いとのことです)になっていましたし、バス内部の仕組みなどもいろいろと変わっていました。
僕は両腕ともに献血の神に愛された血管を持っているので、いつも職員の方にうらやましがられたり褒められたりします。今日は400 mL全血献血でした。
昨日、データが取って来れるようになりました。
そこで、緊急事態宣言解除後の新規陽性者数について指数関数をあてはめてみました。
縦の破線が緊急事態宣言と解除の日*1、赤色の実線が7日間移動平均線で、緑色が指数関数フィットです。数日後まで外挿してあり、7日後は約450人となっています。
さらにこのペースのまま曲線を伸ばしてみると、21日後には1000人を超えるらしいことが計算できます。しかし、過去のデータに指数関数をあてはめて外挿してというのには、「得られたデータは正しい(操作されていない、集計方法に途中変更がない)」「このデータは指数関数のモデルから生じている」「過去に起きたことが未来もこのまま続く(誰も行動を変えない)」などという、本当にそうなるの?と思う点がいくつかあります。なので、占いみたいなものです。当たるも八卦当たらぬも八卦。
*1:どちらも全国を対象としたもの。東京を含む都市部は1週間ほど早い4月7日に当初緊急事態宣言が発出されていました。参考:政府 2020年5月25日 緊急事態解除宣言(全国で解除)/新型コロナウイルス感染症特設サイト/とりネット