チャイコフスキー、ベートーベン、モーツアルト、と曲はメジャーなものを取り揃えオーソドックスですが、曲の順番がプログラム構成として斬新?でしょうか?
iPodから送信
Early Registration Discounts for Members – as low as $679 USD!
As low asって、金額としては結構な感じです。
just $679っていうところも、割り切れない感じの金額でjustってどういうことよ。ちょうど512とか、256っていうのならわかるけど。
iPodから送信
|
|||||
|
Clinical Exchange Program at MD Anderson Cancer Center, University of Texas
1996年 テキサス大学のMDアンダーソンがんセンターにClinical Exchange Programで勉強に行った際に撮影した写真が出てきたので、掲載です。あまり仕事をしているような写真が残っていなかったのですが、病院内は撮影禁止で研修中の写真がありません。
Tower of the sun
子供がNHKのビジュチューンという番組の「保健室に太陽の塔」にはまっているが、確かになかなか面白いメッセージを伝えている。でも、そのメッセージは、井上さんが創ったメッセージというよりは岡本さんの元々のメッセージ。まぁ、良いか。この番組はそういう作品を紹介するというのが趣旨で、元のメッセージを伝えるという番組の役割に沿っている。
ふと思い出したことがある。テレビの番組で劇団ひとりがビートたけしのモノマネをして笑いを取っていたが、よく考えるとモノマネが面白かったのではなくて、ビートたけしの元ネタが面白かった。黙ってネタをやると単にパクッたことになるのだが、「モノマネ」だと宣言することで、単なる他人のネタの流用にはならないという、なかなかずる賢い感じになっていた。
初音ミクバージョンも公開されていますね。
Analysis Specification for SCCS
先日の解析で使用したSQL スクリプトです
コマンド | フィールド名 | 追加元・更新元 |
クエリ名 | 0010 SCCS_preprocess q | |
説 明 | ||
select_into | [0010 SCCS_preprocess] | |
select | Oxford.indiv | |
select | 547 AS age | |
select | Oxford.start | |
select | Oxford.end | |
select | Oxford.exday | |
select | [exday]+14 AS ex1 | |
select | [exday]+35 AS ex2 | |
select | [ex1]-[start] AS l1a1 | |
select | [age]-[start] AS l1a2 | |
select | IIf([l1a1]>[l1a2],[l1a2],[l1a1]) AS l1a | |
select | [ex2]-[ex1] AS l1b1 | |
select | [age]-[ex1] AS l1b2 | |
select | IIf([l1b1]>[l1b2],[l1b2],[l1b1]) AS l1b | |
select | [age]-[ex2] AS l1c | |
select | [ex1]-[age] AS l2a | |
select | [ex2]-[ex1] AS l2b1 | |
select | [ex2]-[age] AS l2b2 | |
select | IIf([l2b1]>[l2b2],[l2b2],[l2b1]) AS l2b | |
select | [end]-[ex2] AS l2c1 | |
select | [end]-[age] AS l2c2 | |
select | IIf([l2c1]>[l2c2],[l2c2],[l2c1]) AS l2c | |
select | Oxford.eventday INTO [0010 SCCS_preprocess] | |
from | Oxford | |
クエリ名 | 0020 Event q | |
説 明 | ||
select_into | [0020 Event] | |
select | [0010 SCCS_preprocess].indiv | |
select | (([eventday]<[ex1]) And ([eventday]<[age])) AS El1a | |
select | ([ex1]<[eventday]+1) And ([eventday]<[ex2]+1) And ([eventday]<[age]) AS El1b | |
select | ([ex2]<[eventday]) And ([eventday]<[age]) AS El1c | |
select | ([age]<[eventday]+1) And ([eventday]<[ex1]) AS El2a | |
select | ([age]<[eventday]+1) And ([ex1]<[eventday]+1) And ([eventday]<[ex2]+1) AS El2b | |
select | ([age]<[eventday]+1) And ([ex2]<[eventday]) AS El2c INTO [0020 Event] | |
from | [0010 SCCS_preprocess] | |
クエリ名 | 0030 L1A q | |
説 明 | ||
select_into | [0030 L1A] | |
select | Oxford.indiv | |
select | Abs([El1a]) AS event | |
select | [0010 SCCS_preprocess].l1a AS [interval] | |
select | 1 AS agegr | |
select | 0 AS exgr INTO [0030 L1A] | |
from | (Oxford INNER JOIN | |
from | [0010 SCCS_preprocess] ON | |
from | Oxford.indiv = [0010 SCCS_preprocess].indiv) INNER JOIN | |
from | [0020 Event] ON | |
from | Oxford.indiv = [0020 Event].indiv | |
クエリ名 | 0040 L1B q | |
説 明 | ||
select_into | [0040 L1B] | |
select | Oxford.indiv | |
select | Abs([El1b]) AS event | |
select | [0010 SCCS_preprocess].l1b AS [interval] | |
select | 1 AS agegr | |
select | 1 AS exgr | |
select | [ex2]>[Oxford]![start] AS term1 | |
select | [Oxford]![end]>[ex1] AS rerm2 INTO [0040 L1B] | |
from | (Oxford INNER JOIN | |
from | [0010 SCCS_preprocess] ON | |
from | Oxford.indiv = [0010 SCCS_preprocess].indiv) INNER JOIN | |
from | [0020 Event] ON | |
from | Oxford.indiv = [0020 Event].indiv | |
where | ((([0010 SCCS_preprocess].l1b)>0) And | |
where | (([ex2]>[Oxford]![start])=True) And | |
where | (([Oxford]![end]>[ex1])=True)) | |
クエリ名 | 0050 L1C q | |
説 明 | ||
select_into | [0050 L1C] | |
select | Oxford.indiv | |
select | Abs([El1c]) AS event | |
select | [0010 SCCS_preprocess].l1c AS [interval] | |
select | 1 AS agegr | |
select | 0 AS exgr INTO [0050 L1C] | |
from | (Oxford INNER JOIN | |
from | [0010 SCCS_preprocess] ON | |
from | Oxford.indiv = [0010 SCCS_preprocess].indiv) INNER JOIN | |
from | [0020 Event] ON | |
from | Oxford.indiv = [0020 Event].indiv | |
where | ((([0010 SCCS_preprocess].l1c)>0)) | |
クエリ名 | 0060 L2A q | |
説 明 | ||
select_into | [0060 L2A] | |
select | Oxford.indiv | |
select | Abs([El2a]) AS event | |
select | [0010 SCCS_preprocess].l2a AS [interval] | |
select | 2 AS agegr | |
select | 0 AS exgr INTO [0060 L2A] | |
from | (Oxford INNER JOIN | |
from | [0010 SCCS_preprocess] ON | |
from | Oxford.indiv = [0010 SCCS_preprocess].indiv) INNER JOIN | |
from | [0020 Event] ON | |
from | Oxford.indiv = [0020 Event].indiv | |
where | ((([0010 SCCS_preprocess].l2a)>0)) | |
クエリ名 | 0070 L2B q | |
説 明 | ||
select_into | [0070 L2B] | |
select | Oxford.indiv | |
select | Abs([El2b]) AS event | |
select | [0010 SCCS_preprocess].l2b AS [interval] | |
select | 2 AS agegr | |
select | 1 AS exgr | |
select | [ex2]>[Oxford]![start] AS term1 | |
select | [Oxford]![end]>[ex1] AS rerm2 INTO [0070 L2B] | |
from | (Oxford INNER JOIN | |
from | [0010 SCCS_preprocess] ON | |
from | Oxford.indiv = [0010 SCCS_preprocess].indiv) INNER JOIN | |
from | [0020 Event] ON | |
from | Oxford.indiv = [0020 Event].indiv | |
where | ((([0010 SCCS_preprocess].l2b)>0) And | |
where | (([ex2]>Oxford!start)=True) And | |
where | ((Oxford!end>[ex1])=True)) | |
クエリ名 | 0080 L2C q | |
説 明 | ||
select_into | [0080 L2C] | |
select | Oxford.indiv | |
select | Abs([El2c]) AS event | |
select | [0010 SCCS_preprocess].l2c AS [interval] | |
select | 2 AS agegr | |
select | 0 AS exgr INTO [0080 L2C] | |
from | (Oxford INNER JOIN | |
from | [0010 SCCS_preprocess] ON | |
from | Oxford.indiv = [0010 SCCS_preprocess].indiv) INNER JOIN | |
from | [0020 Event] ON | |
from | Oxford.indiv = [0020 Event].indiv | |
where | ((([0010 SCCS_preprocess].l2c)>0)) | |
クエリ名 | 0090 chopdat1A q | |
説 明 | ||
select_into | [0090 chopdat] | |
select | Oxford.indiv | |
select | [0030 L1A].event | |
select | [0030 L1A].interval | |
select | [0030 L1A].agegr | |
select | [0030 L1A].exgr | |
select | Log([interval]) AS loginterval INTO [0090 chopdat] | |
from | Oxford INNER JOIN | |
from | [0030 L1A] ON | |
from | Oxford.indiv = [0030 L1A].indiv | |
クエリ名 | 0100 chopdat1B q | |
説 明 | ||
insert | [0090 chopdat] | Oxford.indiv = [0040 L1B].indiv |
field | indiv | ← Oxford.[indiv] |
field | event | ← [0040 L1B].event |
field | [interval] | ← [0040 L1B].interval |
field | agegr | ← [0040 L1B].agegr |
field | exgr | ← [0040 L1B].exgr |
field | loginterval | ← Log([interval]) AS loginterfal |
from | Oxford INNER JOIN | |
from | [0040 L1B] ON | |
from | Oxford.indiv = [0040 L1B].indiv | |
クエリ名 | 0110 chopdat1C q | |
説 明 | ||
insert | [0090 chopdat] | Oxford.indiv = [0050 L1C].indiv |
field | indiv | ← Oxford.[indiv] |
field | event | ← [0050 L1C].event |
field | [interval] | ← [0050 L1C].interval |
field | agegr | ← [0050 L1C].agegr |
field | exgr | ← [0050 L1C].exgr |
field | loginterval | ← Log([interval]) AS loginterfal |
from | Oxford INNER JOIN | |
from | [0050 L1C] ON | |
from | Oxford.indiv = [0050 L1C].indiv | |
クエリ名 | 0120 chopdat2A q | |
説 明 | ||
insert | [0090 chopdat] | Oxford.indiv = [0060 L2A].indiv |
field | indiv | ← Oxford.[indiv] |
field | event | ← [0060 L2A].event |
field | [interval] | ← [0060 L2A].interval |
field | agegr | ← [0060 L2A].agegr |
field | exgr | ← [0060 L2A].exgr |
field | loginterval | ← Log([interval]) AS loginterfal |
from | Oxford INNER JOIN | |
from | [0060 L2A] ON | |
from | Oxford.indiv = [0060 L2A].indiv | |
クエリ名 | 0130 chopdat2B q | |
説 明 | ||
insert | [0090 chopdat] | Oxford.indiv = [0070 L2B].indiv |
field | indiv | ← Oxford.[indiv] |
field | event | ← [0070 L2B].event |
field | [interval] | ← [0070 L2B].interval |
field | agegr | ← [0070 L2B].agegr |
field | exgr | ← [0070 L2B].exgr |
field | loginterval | ← Log([interval]) AS loginterfal |
from | Oxford INNER JOIN | |
from | [0070 L2B] ON | |
from | Oxford.indiv = [0070 L2B].indiv | |
クエリ名 | 0140 chopdat L2C q | |
説 明 | ||
insert | [0090 chopdat] | Oxford.indiv = [0080 L2C].indiv |
field | indiv | ← Oxford.[indiv] |
field | event | ← [0080 L2C].event |
field | [interval] | ← [0080 L2C].interval |
field | agegr | ← [0080 L2C].agegr |
field | exgr | ← [0080 L2C].exgr |
field | loginterval | ← Log([interval]) AS loginterfal |
from | Oxford INNER JOIN | |
from | [0080 L2C] ON | |
from | Oxford.indiv = [0080 L2C].indiv | |
クエリ名 | 0150 chopdat q | |
説 明 | ||
select_into | [0150 chopdat] | |
select | [0090 chopdat].indiv | |
select | [0090 chopdat].event | |
select | [0090 chopdat].interval | |
select | [0090 chopdat].agegr | |
select | [0090 chopdat].exgr | |
select | Round([0090 chopdat]![loginterval],6) AS loginterval INTO [0150 chopdat] | |
from | [0090 chopdat] | |
order by | [0090 chopdat].indiv |
RFC seminar
セミナーが開催されます
Walls have ears
雑居ビルで仕事をしていると、いろいろな会社のヒトとエレベーターで一緒になることがあります。中には、だれでも知っているような有名企業もそのビルに入っていて、その取引先の名前もまた大手であったりすると、何を話しているのかがなんとなく解ることがあります。今日もそんなおばはん方の会話が聞こえてきました。「ビジョヤジューの広告をデンツーで…」会話の内容は、広告を打つ担当者がその費用を処理するのに、費目を間違えて申請して偉い人までそのまま承認していて手間がかかるとかいう愚痴のような感じでしたが、君たち気づいていないだろうが、「ビジョヤジュー」って「と」を抜くことですごく言い易くなる訳でもなく、素早く言えてる訳でもないよ。それにしても、その業界の広告費ってすごい金額なのね~
BRASS HEXAGON
1年前に聞いたブラスヘキサゴンと東京6人組。いづれもレベルの高い演奏で、堪能できました。
Follow-up for hepatitis B
HBsAg陽性、いわゆるキャリア患者さんのフォローをどうするか、という問題です。
self-controlled case series (SCCS) – (2)
前回のおはなし
1. SCCSを再び
SCCSを自分なりにもう一度噛み砕いて計算の流れを納得した上で、それが間違っていないことを確認したいというのが目的再び挑戦です。前回使用した他人さまの書いたプログラムを参考に、計算の細かい考え方がわかったところで、もう一度どういう計算が必要かを考えています。始めは写真のような、手書きのスケッチで考え方を整理。
2.R→SQL
他人様の書いたRスクリプトを、SQLで表現しなおして、中間テーブルのデータを比較。結果を出力すると、正しいスクリプトだと38行になるところが、今回作成したスクリプトでは39行に?観察期間外にワクチンが接種された患者さんがいることを考慮した例外処理を含め忘れていました。
そんなこんなで、例外処理をするスクリプトを加えた結果が次の写真です。logの有効桁数が違うけどそれ以外内容は同じになりました。
3. 中間テーブルは一致したが…
上の通り、中間テーブルは一致しましたが、オッズ比が一致しません…そんな馬鹿な?しかも、だいたい同じくらいになるんだけど、微妙に不一致。
自分の集計結果:
論文の集計結果:
4.桁数が減っている???
いろいろ調べていると、SQL出力をcsvファイルにして、それをRに取り込んだところでデータの桁数(小数点以下)が減っています。元々小数点以下6桁あったはずなのに、2ケタに丸められています。何でこういうことになるのでしょうか? 読み込むRのread.csv関数の設定か? はたまた、読み込んだ後にdata.frameにするところで、宣言しなくてはいけないのか?
5. SQLの集計の出力がおかしい
結局読み取り側の問題ではなく、書き出しに問題ありでした。書き出しの際には、Windowsのコントロールパネルの言語設定のところから桁数を2 -> 6 と大きくすることが必要だということです。
6. めでたしめでたし
ちゃんとSQLのデータを吐き出すことに成功し、読み取って計算すると、論文のデータと一致しました。だいぶ理解が深まってきたぞ。
スクリプトはこちら