Yoshi Nishikawa Blog

医学となにかのインタラクティブ

RMarkdownで表を出力する

訳者の方からご恵贈頂いた、

Rプログラミング本格入門

第15章「生産性を高める」 より、とてもためになったので、自分なりに実践したことを記してみます。

動機

RMarkdownで出力したhtmlレポートに、キレイな表を入れたい。

やってみた

carsをdata table型で表示

DT::datatable(cars)

f:id:yoshi_nishikawa:20180321233638p:plain

  • DTというパッケージを使ったら異常にかっこよくなりました。

summaryをかっこよく表にする

knitr::kable(summary(cars))

f:id:yoshi_nishikawa:20180321233654p:plain

分析結果を表にする

xtable::xtable(lm(dist~speed, data=cars))->tab1 
print(tab1, type="html")

f:id:yoshi_nishikawa:20180321233715p:plain

  • めちゃくちゃスタイリッシュというわけではないですが、分析結果を表に出すことが出来ました。
  • ここでは、results='asis' のオプションを付けておくのがポイントです!

reviseをwithdrawした話

今回は、「revise案件を取り下げたという実体験」を、ここにまとめておきます。

論文投稿から掲載までのプロセスは、

執筆→査読→リバイズ→受理

という流れです。

今回、とある雑誌にリバイズ(minor revision)になったにも関わらず、

まったくトンチンカンなコメントがエディターから来ました。

おそらく他の論文の査読文を誤って私に送った模様・・・

あまりに酷い内容だったため、何度も雑誌社に問い合わせ、

1週間・・・

2週間・・・

1ヶ月・・・

2ヶ月・・・

何度もやり取りしましたが、一向に前に進む返事が来なかったため、このたび、はじめて論文を
"decline to revise"しました。

時間を要したので、苦渋の決断だったのですが、コレ以上は待ってはいられません。

原稿がどうなったか確かめにonline submissionのページに行くと、

f:id:yoshi_nishikawa:20180116164909p:plain

Declined Revisions (1)とあります。
ここをクリックして、中身を確認すると確かにこの中に入っていました!!
そしてAction Linksを確認すると、Reinstate Submissionというのがありますね。

f:id:yoshi_nishikawa:20180116165011p:plain

reinstate【他動】 ~を元に戻す、~を使えるようにする (人)を復職[復位・復権・復帰]させる

もとにもどす・・・!?

declineしても元に戻せる、のですか。

もうないとは思いますが、今後、雑誌社から良い返事や謝罪の連絡が来れば、
reinstateして、リバイズ作成する可能性は残されているということになりますね。

すべての雑誌で適用できるとは到底思えませんが、
この雑誌に関しては、1ヶ月くらいの時点で見切りをつけて、
次の雑誌に投稿を進めればよかったと反省しています。

一旦はお断りしましたので、次の投稿先で、日の目を浴びることができれば、と願っております。

介護研究ことはじめ: Long-term care

介護の重要性

地域医療に携わって、介護の重要性を再認識する日々です。
先進国における、世界的な少子高齢化トレンドを反映して、
自宅で高齢者のことをみることが困難になっています。

そうして、療養施設などに頼るのですが、
なかなか需要と供給が追いつかないという事情があります。

英語にするとLong-term care, nursing careなどの用語が用いられます。
google scholarPubmedなどでラフに急性期vs介護の研究数を調べてみました。 MeSH termが概ね付与されていそうな2016年までの、
Emergency treatment (救急医療) vs Long-term care (介護) の論文数は以下のような形です。

f:id:yoshi_nishikawa:20180115193344p:plain

まだまだ少ないことがわかります。

ということで、2018年は、介護の研究にも力を入れます。

介護の提供者は・・・?

Nursing careという表現からも連想できますが、
監督者は、看護師であることが多いのです。
医師などは、そのさらにバックアップ役です。 日本だと、介護福祉士、ヘルパー、などの方々が、実務上は介護現場を担っています。

介護に関する文献

*随時更新していきます(最終更新: 2018/1/21)

UN

Current Status of the Social Situation, Well-Being, Participation in Development and Rights of Older Persons Worldwide

Medicare

Long-term care | Medicare.gov

OECD

www.oecd.org

www.keepeek.com

www.keepeek.com

日本

介護保険法 / Long-Term Care Insurance Act

介護は、医療よりも生活に近いので、教育、文化、歴史背景を学びながら研究を進めて参ります。

Case report (症例報告) を投稿する2017

臨床をおこなっていると、貴重orメッセージ性のある症例にあたることがあります。

方法と結果は日常臨床で行っていることをcase presentationすれば良いし、introductionとdiscussionはしっかりと記載する必要があるので、臨床医の論文執筆の第一歩には最適と考えています。

最近わたしが研修医/修練医と一緒に書く時の方法、共有しておきます。

  1. 日本語で2000-3500字くらいで、英語換算で1000-1500 wordsまでに抑えておくと、投稿先の選択肢が多数あります。
  2. 英語化を意識して、ロジック組み立てる。英語が得意なら英語からはじめてもよいです。
  3. 腫瘍系の症例なら、まずは、JJCOをイメージして狙うと良いと思います。
    https://academic.oup.com/jjco/pages/Instructions_For_Authors#Case%20reports
    https://academic.oup.com/DocumentLibrary/JJCO/eng.guideline.pdf
  4. 以下のガイドラインも、最近要求される傾向にあるので、目を通しておくと良いです。
    CARE Statement

余談ですが、以下の本、私もまったく共感する内容がかかれていました!!

世界に一つだけの症例なんて滅多にないので、ポイントを幾つか掛け算して、
珍しいorメッセージ性の高い症例報告に仕上げます。

100例に1例の要素が3つ集まれば、100万例に1例になります。

見せ方が大切です!

*投稿先については、以下によくまとまっています(英語)。

libguides.gwumc.edu

Rを使って負の二項分布で回帰する Negative binomial regression

裾の長いカウントデータを扱いたい(外れ値が有る)ときに、負の二項分布を仮定したモデリングを考える。

MASS packageにはいっていたので、覚書として残しておく。

R: Fit a Negative Binomial Generalized Linear Model

以下で実行できる。

library(MASS)
quine.nb1 <- glm.nb(Days ~ Sex+Age, data = quine)
confint(quine.nb1)

仮想通貨の勢力図をRを使って可視化する

今日は少し脱線して、仮想通貨情勢をRで調べてみる。

この記事を見ながら、自分で実装してみた。

今回、使うのは3つのパッケージ。

元記事にあったとおり、coinmarketcaprで仮想通貨のデータをとってきて、treemapで可視化。

米ドルではなく日本円で計算してみるため、quantmod packageを使って、ドル円データを引っ張ってくる。

良い感じに出来た(参考までに、図は、ブログ更新時点のもの)。

f:id:yoshi_nishikawa:20171029101929p:plain

library(coinmarketcapr)
market_today <- get_marketcap_ticker_all()

#install.packages("quantmod")
library(quantmod)
from <- c("USD")
to <- c("JPY")
usdjpy<-getQuote(paste0(from, to, "=X"))
usdjpy$Last

library(treemap)
df1 <- na.omit(market_today[,c('id','market_cap_usd')])
df1$market_cap_usd <- as.numeric(df1$market_cap_usd)*as.numeric(usdjpy$Last)
colnames(df1) <- c("id", "market_cap_jpy")
df1$formatted_market_cap <-  paste0(df1$id,'\n','¥',format(df1$market_cap_jpy,big.mark = ',',scientific = F, trim = T))
treemap(df1, index = 'formatted_market_cap', vSize = 'market_cap_jpy', title = 'Cryptocurrency Market Cap', fontsize.labels=c(12, 8), palette='RdYlGn')