RとウェブAPIに関する本をちょっと書きました。

API R

「Rによるスクレイピング入門」という本が3週間後に出る予定です。 日本のR界の出版王こと石田基広先生をはじめ、ホクソエム株式会社の名参謀・市川さん、人を死に至らしめる程のR力を誇るという瓜生さん、という豪華な著者陣に並んで、私もウェブAPIに関す…

メモ:dplyrのselect(data, col1:colN)みたいなやつはどう実現しているのか

select()は内部的にはselect_vars()を使っている。select_vars()はさらに内部ではlazyeval::lazy_eval()を呼び出している。

メモ:formulaはそのエンクロージング環境を捕捉している

R

とかかれているのをふと見かけてなるほどなあと思ったのでメモ。 # formulas automatically capture their enclosing environment foo <- function(x) { y <- 10 ~ x + y } (https://github.com/hadley/rlang/blob/84a63a1a660cebff373b9db02ac37e04c934dbde…

Visual Studio Codeでシンタックスハイライトをそのままコピペする。

とかいうと何か特別なことが必要かと思うじゃないですか? いいえ、ただコピペするだけです。

はてなAPI用のOAuthトークンを取得するRパッケージをつくりました

R API

こないだ書いたこれを、 いちおうパッケージにまとめました。 が、結局、たまに401が出る理由は謎のままです。debug()で401が出たのと同じnonceとtimestampでリクエストを送ってみましたが、成功したりします。誰か助けて…。 そういう謎を残したままなので、…

メモ:OAuth 1.0のRFCをチラ見する

API R

悔しいので前回のリベンジ的な。 notchained.hatenablog.com

はてなAPIをRから使う

API R

はてなAPIをRから使ったときのメモです。認証には種類がいくつかありますが、OAuthによる認証を使います。公式ドキュメントはこのへん。 はてな OAuth - Hatena Developer Center

GyazoのAPIをRから使ってみる

API R

ドキュメントを見ながらGyazoのAPIをRから使ってみます。 https://gyazo.com/api/docs

メモ:imguRでOAuthトークンを使う方法

R

imguRパッケージは便利なんだけど、デフォルトのAPIキーで使えてしまうので自分のアカウントにアップロードしたつもりがそうなってなかった、というメモ。 imgur.com

メモ:RでMarkdownファイルから画像のパスだけ抜き出すにはcommonmarkとxml2?

いちどcommonmarkでHTMLに変換したのをxml2で読む、というのがまだるっこしく感じるんですけど、Markdownをパースしてリストにしてくれるパッケージとかないものなんでしょうか? md <- " test ==== plot1 ----- ![this is plot1](./path/to/plot1) plot2 --…

RMarkdownをknitしたときに画像をgistにアップロードする

knitrには実は、upload.funというオプションがあって、knitしたときに画像ファイルを自動でどこかにアップロードすることができます。 Upload images - Yihui Xie | 谢益辉 というのを今日知ったので、試しにgistにアップロードする関数を作ってみます。

メモ:RのパッケージのドキュメントをMarkdownで書くときには「Roxygen: list(markdown = TRUE)」を忘れずに

R

なんか風の噂で、roxygen2でドキュメントを書くときにMarkdownが使えるようになったと聞いたんですが、試してみてもなんかならなくて、あれ?なんで?と思ってしばらく悩んでたらDESCRIPTIONにこの1行が必要だった。 Roxygen: list(markdown = TRUE) ちゃん…

GitHubでroxygen2の自動生成ドキュメントはdiffに表示されなくなりました

R

ちょっと前にこんな記事がありました。 qiita.com Rで自動生成コードといえばあれです。roxygen2。 これって同じノリで無視できるのかな?と思って上の記事にあったレポジトリを見ると対応してなさげだったので、Rubyまったく分からないけどこんな感じかな?…

メモ:lmの信頼区間をbroom::augumentで出す

アヒル本の図4.3をpredict()を使わずに描くにはどうするのか気になって調べたときのメモ。ちなみにアヒル本が使っているコードはサポートページにあります。 github.com

twitteRパッケージがdeprecated(廃止予定)になっていたのでいちおう注意しましょう。

RからTwitterのAPIを利用するときの定番なのがtwitteRパッケージです。 こないだふとソースコードを見ようと思って元レポジトリに行くと、READMEにこんなことが書かれていました。 DEPRECATION This is the start of a relatively leisurely deprecation per…

RでGISをやるときにはsfパッケージ、という世の中になるらしい。

R GIS sf

RでGISといえばspパッケージです。でした。いま、時代が動こうとしています。 ...という記事を書けるほどのGISの知識が私にはないので、ほんとはもっと勉強してから書くべきなんですけど、とりあえず勉強のためにも調べたことをまとめとこう、と思って書きま…

メモ:RでJSONファイルを読み書きするときはjsonlite::read_json(), jsonlite::write_json()

jsonlite 1.2で、read_json()とwrite_json()という関数が追加されました。 Update jsonlite 1.2 ディスクから直接読み書きするから速い、らしい。そんなパフォーマンスを気にするほどでかいJSONファイルを扱ったことないけどいちおうメモ。

RStudioアドインで突然の死AAにキーボードショートカットを割り当てる

※この投稿はRStudio Advent Calendar 2016の20日目の記事です。 あれはちょうど去年の今頃でした。RStudioにアドインという機能拡張の仕組みができ、Preview版のRStudioに搭載されました。 公式サイト:http://rstudio.github.io/rstudioaddins/

RStudioのログイン画面をGoで突破する

※この投稿はRStudio Advent Calendar 2016 16日目の記事です。 銀杏BOYZの峯田和伸の名言でこんなことばがあります。 僕は思うんだ。本当の芸術というのは、音楽にしたって映画にしたって文章にしたって演芸にしたってなんだって、ドアが開かぬままあなたに…

Thinkpad X1 Carbon/Windows 10でHyper-Vを有効にした時のメモ

諸事情でWindowsをProにする機運が高まったのでそうした。ついでなのでHyper-Vも使ってみる。セットアップでちょっと手間取ったのでメモ。

今すぐ知るべき! RStudioのオススメTips 5種

※この投稿はRStudio Advent Calender 2016の12日目の記事です。 RStudioのTipsを紹介します。といっても私はTipsの紹介はしません。Tipsの紹介を紹介するだけです。

Bash on WindowsにRStudio Serverをインストールする。

r-wakalangでそういう話が上がってたのでちょっと試してみたときのメモです。

俺たちのtidyverseはこれからだ!

※この投稿はR Advent Calendar 2016の6日目の記事です。 11/27のJapan.R 2016でLTしたtidyverseについて書きます。スライドは以下です。 Tidyverseとは from yutannihilation (ちなみに、この投稿のタイトルは@siero5335さんのツイートがエモくてすてきだっ…

Goのcrypto/rsaのEncryptPKCS1v15の使い方メモ

ちょっと自信がないので、OpenSSLでやったのと同じ結果になるか確かめてみる。

RでRStudio Serverのログイン画面を突破する

ちょっとやろうと思っていることがあったので試してみたときのメモです。

私と驥悟く蜈オ

※この投稿は「私と里傭兵」大喜利Advent Calendar 2016 4日目の記事です*1。 里傭兵は文字だ。文字通り。 みたいな書き出しではじまる小説があったがその話はここではしない*2。しかし、文字とは何なのか。 「里傭兵」という文字と「里傭兵」という文字は同…

dplyrは言語です

awesomeな方がJapan.RでLTされていたので、アンサーソング的なブログを書いておきます。(嘘です。そんなにdplyr詳しくないです...)

メモ:Visual Studio Codeバージョン1.7.2でJavaScriptの補完がやりやすくなった

Visual Studio CodeのJavaScript/Typescriptの補完は、Typescriptの型定義ファイルに頼って行われます。で、その型定義ファイルを自動でインストールする仕組みがTypescriptにできたらしいです。

ウェブAPIから返ってくるネストしまくったJSONをpurrrの力でdata.frameに変換する

某ウェブサービスのデータをAPI経由でRから取ってくるkntnrというパッケージをつくりました。 このパッケージを作るのは、実は2年間に3度くらい作りかけてはあきらめて、というのを繰り返してきました。というのも、JSONをdata.frameに変換するのが大変すぎ…

ifelse()は危険なのでやめてdplyr::if_else()を使いましょう

dplyrパッケージのif_else()、case_when()、recode()の紹介をuriboが書いてたので、そういえばこのことちゃんと書いてなかったなと思って書いておきます。

ggplot2でna.rmが効かなくなった話(2.2.0以降)

先日、ggplot2の2.2.0がリリースされました。この変更点については以下の記事にまとめました。 notchained.hatenablog.com で、一点、 これはちょっとわかりづらいので、別途解説を書こうと思います。。 と言ってた宿題があるのでそれをこの記事では書きます…

メモ:GitLabがクラウドをやめた話

GitLabがクラウドをやめてベアメタルに行ったという記事についての自分用メモ。問題はストレージの性能らしい。 CephFSを使うようにしたけど、CephFSは安定したレイテンシが重要。しかしクラウドには「最低〇〇のレイテンシ」というSLAはIOに関してもネット…

メモ:purrr::map(x, "要素名")よりはpurrr::transpose(x)$要素名

transpose()はやい。

メモ:switch()の代わりにS3 generic functionを使うのは微妙だったかも

R

去年こんな記事を書いたけど、 notchained.hatenablog.com でもメソッドディスパッチのコストってどれくらいなんだろう?と思ってやってみました。

Rから国土数値情報ダウンロードサービス Web APIを使うパッケージkokudosuuchiをCRANで公開しました

去年の年末につくった、Rから国土数値情報ダウンロードサービス Web APIを使うパッケージをCRANで公開しました。 CRAN:CRAN - Package kokudosuuchi 大したことをしているパッケージでもないんですが、使ってフィードバックをいただければ嬉しいです。(恥…

メモ:rgdalが必要なパッケージでTravis CIを使う

Ubuntuでrgdalパッケージを使うには、libgdal-devというパッケージが必要なんですが、Travis CIでこれをインストールしようとすると以下のようなエラーがでます。 https://travis-ci.org/yutannihilation/kokudosuuchi/jobs/172862797 The following package…

メモ:curlの国際化ドメイン名関連のバグ・CVE-2016-8625

curlの中の人がこんなことを言ってます。 friends, just DISABLE IDN support in curl to stay safe. It's a mess: https://t.co/YTY7y1VtaL— Daniel Stenberg (@bagder) 2016年11月2日 IDN(Internationalizing Domain Names; 国際化ドメイン名)っていうの…

Powershellで一時的にPATHを変更する

Seleniumをちょっと試しに動かそうと思ったら、ブラウザのドライバにパスが通ってないとだめだった。ちょっと試しに動かしたいだけなのでPathをグローバルにいじりたくはない。 stackoverflow.com

怪しげなニュースサイトBusinessNewslineについて調べたことメモ

追記(10/23):BusinessNewslineのつづりを間違えているという指摘をいただいたので修正しました。すみません。。 さいきん立て続けにBusinessNewslineというメディア?の記事に引っかかってるひとを見かけたのでちょっと調べたことをメモ。 私は↓の記事を…

Kubernetes The Hard Wayをやってみたときのメモ

Kubernetesの中の人がつくったチュートリアルがあります。 これは、GCPでやる方法とAWSでやる方法があるけど、AWSのほうはjqを使わないとダメらしくて手元のWindows環境ではつらそうなのでGCPでやります。 (もはやGCPの使い方すら忘れてるくらいの初心者な…

メモ:Markdownのコードブロックだけ抜き出すAWKスクリプト

AWK

ざっくりとるにはこんな感じ。nextを覚えた。 $ curl https://raw.githubusercontent.com/kelseyhightower/kubernetes-the-hard-way/master/docs/04-kubernetes-controller.md | \ awk 'BEGIN{f=-1}; /^```$/ {f = f*-1; next}; f > 0 {print}' > tmp.sh

ggplot2 2.2.0 を使ってみる

追記(2016/11/13): この記事は「ggplot2 2.1.0.9000を使ってみる」として公開していたものです。ggplot2 2.2.0は先日リリースされましたが、この記事を公開して以降レポジトリのNEWS.mdに変更がなかったのでそのままタイトルを変更しました。 公式のアナウン…

apt-getで入るやつと同じオプションでVim 8.0をビルドする

Vim 8は試してみたいけど、PPAで入れるのはなんか気が引ける。ので、自分でビルドする。 それ自体は簡単で、GitHub上にソースコードはあるので sudo apt build-dep vim git clone https://github.com/vim/vim cd vim/ ./configure ... make make install と…

VS CodeでTypecript 2.0 + D3.js v4を補完できるようにする(暫定対処)

初心者だけどTypescript 2.0 + D3.js v4の勉強をしたい。どっちもメジャーバージョンから時間が経っておらず、関連ツールが移行期間だったりします。VS Codeで補完できるようになるまでちょっと手間取ったのでメモ。 (初心者すぎるので、間違ったことを書い…

メモ:VS Codeで「tsc compilerのバージョンとVS codeほにゃららのバージョンが違う」的な警告が出るときはtypescript.tsdkを設定するか1か月待つ?

A version mismatch between the globally installed tsc compiler (2.0.3) and VS Code's language service (1.8.10) has been detected. This might result in inconsistent compile errors. という警告が出ました。まだHello Worldをやってるだけなので気…

ggplot2 2.2.0で2軸グラフを描くときのメモ

ggplot2 2.2.0で2軸グラフが描きやすくなりました。 描きやすくなりました、という微妙な言い方をしましたが、軸が2つつくれるだけで値のスケールは自分でやらないといけません。その辺のメモ。

メモ:各アプリケーションコンテナのイメージ形式

ちょっと前のこの記事を思い出して、そういえばちょっとリンクだけでもメモっとこうと。 blog.gachapin-sensei.com

メモ:インストールしたもの

備忘録。

メモ:Thinkpad X1 Carbonにプリインストールされていたソフト

Lenovo Active Protection System HDDを振動から守るやつらしい。HDDじゃないから必要かよくわからない。 Lenovo Power Management Driver 省電力用のドライバ。 Lenovo Scaling Utility Fn + Tabでデスクトップを拡大するためのソフト、と書いてあるけど、F…

メモ:httr::stop_for_status()とhttr::http_error()の違い

http_error()はエラーだったらTRUEになるやつで、stop_for_status()は成功つまり2XX系じゃなかったらstop()するらしい。「エラーだったら」と「成功じゃなかったら」のニュアンスの違い… x <- GET("http://httpbin.org/status/300") http_error(x) #> [1] FA…