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

タイトルどう書けばいいのかわからなかったんですが、要はこれをRでやりたいという話です。途中までやったのでメモ。

続きを読む

メモ: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_density(data = d, aes(value), fill = alpha("grey", 0.7)) +
  geom_vline(data = l, aes(xintercept = value), colour = alpha("red", 0.5), linetype = "dashed", size = 2) +
  geom_label(data = l, aes(x = value, y = Inf, label = label), vjust = 1) +
  theme_minimal()

f:id:yutannihilation:20170614212537p:plain:w450

続きを読む

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),
  type = sample(letters, size = length(idx), replace = TRUE)
) %>%
  group_by(type) %>%
  mutate(value = cumsum(value)) %>%
  ungroup()

ggplot(d) +
  geom_line(aes(idx, value, colour = type))

f:id:yutannihilation:20170528155613p:plain:w450

続きを読む

2017/05/19にLet's Encryptで起こっていた障害についてのメモ

5/19にLet’s Encryptで障害が起こっていました。その原因と、付随して起こっていたらしいOCSP Stapling絡みのゴタゴタについてのメモ。

続きを読む

メモ: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 select(mtcars, "cyl") are now allowed.

説明の意味はあんまり理解できないんですが、こんな感じです。select()select_()の使い分けで悩んでいた時代はもう過去ですね。

続きを読む

メモ:カテゴリごとにデータフレーム単位で処理をしたいときはdplyr::do()とsplit() + purrr::map()のどちらが速い

ベクトルを引数に取る関数はgroup_by()でいいわけですが、データフレームを引数に取るような関数はどうしますか?

続きを読む