R

httr 1.3.0がリリースされました

httr 1.3.0がリリースされました。色んな不具合が直っています。

メモ:%<-%、%>>%

R

最近ちょっと気になる演算子。使い方をちょっと調べたのでメモ。

Rでドメインを買うためにGoDaddy APIを使う

R API

というタイトルですが、まだ買ってません。途中で挫折しました。 やったところまでのメモ。

purrr 0.2.3を使ってみる

なんか意外と変更点多いなと思ったのでリリースノートを眺めてみます。

GitHub検索APIでGitHub上のRパッケージを見つけるには?

R API

Gepuro Task Viewsがあるでしょ、というツッコミが入りそうですが、意外とAPIでできたりしないかな?と思ったのでやってみた時のメモです。 結果とかコードはここに散らばっています(未整理):

メモ:世界で最もミニマルなRパッケージをつくる

R

まったく訳に立たない知識。 RのパッケージにはDESCRIPTIONとかNAMESPACEとかRファイルとかいろいろありますが、パッケージとしての体を成す限界はどこなのでしょうか。やってみた感じ、どうやらDESCRIPTIONとNAMESPACEさえあればいいようです。 つくってみ…

メモ:stringrでGitHubの検索APIが受け付けるぎりぎりの長さにクエリを切り詰める

レコード店でマイナーなCDをディグるときのように、GitHubの検索APIでマイナーなファイルを探したい。そんな日もあるでしょう。

kazutan.Rでdplyrのselectとmutateのセマンティクスの違いについてLTしてきました

「Rを用いたデータハンドリングと可視化」ハンズオン&LT(a.k.a. kazutan.R)でLTしてきました。 speakerdeck.com

httrのOAuth1.0のバグが直ったのでrtweetもガンガン使っていきましょう

httrがメンテされてないっぽい、という絶望をちょっと前に吐露しましたが、 なんと、httr2はまだ先ということでhttrのメンテが再開されました!

Tokyo.RでggjoyについてLTしてきました。

最近はやりのjoyplotを描くパッケージggjoyについてLTしてきました。

海外R界のはてなブログことRbindにblogdownでブログをつくる

「R界のWordpress.com/Medium」的なものを目指すRbindというプロジェクトがあります。knitrの開発者として有名なYihui Xieさんがプロジェクトを引っ張っています。解説はkazutanさんの記事が参考になります。 RbindにはすでにYihui、Romain François(Rcppが…

CRANにないパッケージに依存しているCRANパッケージ

R

たぶんWindowsだけだと思うんですけど、最近パッケージをインストールしようとするとこんな警告出ませんか? Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/src/contrib: cannot open URL 'http://www.stats.ox.ac.uk…

メモ:dplyrのrow_number()の実装を追う

このissueを解決してなんかコントリビュート感を出したい。が、C++力なさすぎて実装をまったく追えないのでメモ。

「Rによる自動データ収集: Webスクレイピングとテキストマイニングの実践ガイド」(共立出版 2017)を読んだ。

著者陣からご厚意によりオシャレ!デカイ!アツイ!と話題の「Rによる自動データ収集: Webスクレイピングとテキストマイニングの実践ガイド」を頂きました。ありがとうございます!!! Rによる自動データ収集: Webスクレイピングとテキストマイニングの実践…

Rのパッケージをつくるとき、NAMESPACEにimportFromを書くか::を使うのかどっちがいいかという回りくどい話

R

個人的な見解を書いておきます。

Rでインボリュート曲線を波打たせて人の顔っぽいのを描く

タイトルどう書けばいいのかわからなかったんですが、要はこれをRでやりたいという話です。途中までやったのでメモ。 Mathematicaを使って,シュレーディンガーの顔をこのようなアニメーションにされたユーザの方がいらっしゃいます。コードも掲載されていま…

メモ:ggplot2で端っこの方にラベルを付けたいときはInfにしてhjust/vjustで調整する

こんな感じ。もっとうまい方法がある気もしつつ。 library(tidyverse) set.seed(19) d <- tibble( value = rgamma(10000, shape = 1) ) q <- quantile(d$value, probs = 0:4*0.25) l <- tibble(label = names(q), value = unname(q)) ggplot() + geom_densit…

dplyr 0.7.0を使ってみる

注:これは2017/04/15に公開した「dplyr 0.6.0-rcを使ってみる」という記事を加筆修正したものです。

ggplot2で一部の系列だけハイライトするのに便利なパッケージをつくりたい

ggplot2を使っていると、こんな感じのもじゃもじゃしたデータに出会うことがあります。データの系列が多すぎるともう色が見分けられなくてあんまり意味をなしません。 library(tidyverse) set.seed(1) d <- tibble( idx = 1:10000, value = runif(idx, -1, 1…

メモ:dplyr 0.6.0は、select()するだけならtidyevalいらないっぽい

dplyrがもうCRANにsubmitされたという噂を聞いてNEWS.mdを読んでたら、こんなことが書かれていました。 select() (and the internal function select_vars()) now support column names in addition to column positions. As a result, expressions like sel…

メモ:WannaCryの送金データをblockchain .infoのAPIから取ってきてグラフを描きたい

追記(2017/05/21): ツイートの主によるやり方解説ブログはこちら。 これを描きたい。が、元データはどこを見ればいいのかよくわからず調べた時のメモ。 The #wannacry attackers — if they can cash out before authorities find them — just topped $35K…

メモ:emojiの扱い方は分からないけどとりあえずrmarkdown::render()はできるようになった

R

これがrmarkdownにマージされたので、gregexpr()のエラーはとりあえずなんとかなりました。 これでやっとblogdown使える…!

メモ:stringr::str_locate_all()の結果をstringr::str_sub()に渡したいときはpurrr::map2()

例えば、適当な文字列からaで始まる単語を抜き出してみる(こんなことはstr_locate_all()を使わなくてもできるけど、まあ例ということで) library(stringr) library(purrr) x <- c("asymmetry between apple and banana", "aspiration after surgery") # \\…

メモ:Rでemojiを扱うにはどうすれば... part2

R

追記(2017/05/13): useBytes = TRUEにした場合は、regmatches()で抜き出すのはいけるけど、regmatches<-で置換するのはエラーになる。うーん… x <- "<img src='test.png' alt='🍉'>" m <- gregexpr("<\\s*[Ii][Mm][Gg]\\s+[Ss][Rr][Cc]\\s*=\\s*[\"']([^\"']+)[\"']", x, useBytes = TR…

メモ:Rでemojiを扱うにはどうすれば...

R

こういう問題に悩まされていて、どうすればいいか調べる途中のメモ 具体的に言うとこのエラーをなんとかしたい。 # devtools::install_github("hadley/emo") wm <- emo::ji("watermelon") as.character(wm) #> [1] "\xf0\u009f\u008d\u0089" gregexpr(".", a…

メモ:R 3.4.0でfile.info()がNAを返すやつ

R

Windowsだけで起こるこのバグのせいでinstall.packages()が失敗するという話があって気になって調べていた。 17261 – file.info returns filetime for directories https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=17261

dplyr再入門

というタイトルで、第60回R勉強会@東京で発表してきました。 スライドをつくってたら長くなりすぎたのでいくつかに分割しています。 「基本編」は、mutateやselectなどの基本的な関数と、グループ化についてまとめています。内容はIntroduction to dplyr(原…

メモ:dplyr::select()でインド人を左にはできるけど右にはできない?

どうでもいい話。

dplyr 0.6.0はJOIN系のクエリもけっこういい感じ

去年のJapan.Rで、 Join処理のSQLは、結構雑 (dplyr様って もはや言語ではないのか? - Redshiftの場合 - // Speaker Deck) という文を見て、たしかにあれ何とかならないのかなーと思ってたんですが、どうやら0.6.0ではけっこうよくなってそうな雰囲気です。

httr2というパッケージができるという噂

「いいニュースと悪いニュースがある。どっちから聞きたい?」 というのは人生で一度は言ってみたいセリフのひとつですが、ついに使うときが来ました。

メモ:Rでは2+2=5か

R

ちょっと前に、Rの言語定義にこういうイカしたことが書かれているのに気づいてしまった。 Any expression is allowed also on the target side of an assignment, as far as the parser is concerned (2 + 2 <- 5 is a valid expression as far as the parse…

メモ:2017 1QのR Consortiumのグラントに当たったRプロジェクトの顔ぶれ

R

これです:Q1 2017 ISC Grants | R Consortium

メモ:時系列とか連番のデータを補完するときはtidyrのcomplete()とfull_seq()が便利そう

追記:これは「補間」とは言わないかも…。期待外れだったらすみません。 前にこんな記事を書きました。 で、これはたまたま毎分データがあったからよかったんですが、もっととびとびのデータの時どうするんだろう?と思ってたらtidyrパッケージのcomplete()…

R Foundationに年3000円を寄付することにしました。

R

ちょっと前に羽鳥がこんなことをつぶやいてました。 I'm happy to announce that it's now easy to join or donate to the R foundation online: https://t.co/l5vDC9utwT #rstats— Hadley Wickham (@hadleywickham) 2017年3月21日 R Foundationというのは、…

OAuthを裏口認証によってすりぬけるRパッケージ、OAusushiRをつくりました

R

OAuth認証は「Rによるスクレイピング入門」でも扱いましたが、どうやら私の力不足であまり分かりやすい文章になっていなかったようです。すみません。 「Rによるスクレイピング入門」、OAuth認証のところがよくわからん— {teramonagi} (@teramonagi) 2017年3…

メモ:Rのプリミティブ関数のprototype

たまたまissueにこんなのを見かけたのでメモ github.com

メモ:Rで証明書の情報を扱うときはopensslパッケージ

この影響を調べようと思ってopensslコマンドでちまちまやってたわけですが、 Rでも扱えないかな?と思ったらopensslパッケージがあったのでその使い方のメモ。 github.com

メモ:dplyrがStandard evaluationをdeprecatedにしようとしている理由

R

追記(2017/3/25): 「NSE/SEの組み合わせではなく、tidyevalで統一的に扱おうとしている」、という感じ? 正しい文章が思い浮かばない。— Hiroaki Yutani (@yutannihilation) 2017年3月24日 追記(2017/4/7): やはり「NSEをdeprecatedに」というのは間違…

メモ:RcppでCharacterMatrixをUTF-8に変換する

なんとなくわかった気がする(気のせい)。Dirkの例はだいたいstd::transform()を使っているのでこれを真似する。

メモ:R Markdownで、コードと結果を分けて表示したいときはresults='hide'/fig.show='hide'とref.label='...'

こんな感じらしい。 stackoverflow.com

ウェブAPIのためのRパッケージ作成の勘所

R API

というタイトルで、第59回R勉強会@東京で発表してきました。APIパッケージ作成の勘所、というテーマのはずが、延々と世のAPIのAPIへの愚痴を並べるだけのニッチなスライドになってしまいました。すみません。。 speakerdeck.com RからウェブAPIのパッケージ…

メモ:D3.jsで折れ線グラフを描く

まだd3-annotationをうまく使えてないんですが、D3.jsについてのメモ。 このグラフです(繰り返しますが、d3-annotationがうまく使えてないのでアノテーションが黒くつぶれています…)。

reprexパッケージの使い方、あるいは羽鳥に怒られる前に知るべき4つのこと

R

最近、dplyrパッケージのレポジトリにissueを立てようとすると、「reprexよろしく!」と言われます。言われますというか怒られます。怒られる前に、issue templateに書かれていることに目を通しましょう。 これはdplyrにissueを立てようとしたときのスクショ…

メモ:正規表現でreplacement functionを使いたいときはbaseの関数が便利っぽい

R

formatRのコードを読んでいると、こんな箇所がありました。 m = gregexpr(mat.comment, text.mask) regmatches(text.mask, m) = lapply(regmatches(text.mask, m), restore_bs) (https://github.com/yihui/formatR/blob/022da8c1be2c04c8374d19907c41bacd5d0…

メモ:formatRのtidy_source()がやっていること

R

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…

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

R API

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

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

API R

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