データ穴リストのブログ

すべては喰いっぱぐれないために

cut関数にキャッとしてカッとなって書いた

どうも。

ようやくモバイルPCを買いました。 なのに、まだこのPCで分析環境を整えておらず、現状はただのネットブック

さて、久々の更新ですが、今日は今更な気づきをポエみます。

cutはいままでもちょこちょこ使ってるのになんか中途半端に覚えていて、これなんでこんなんだっけなーとぼやぼや思ってましたが、
ちゃんと覚えないとヤバイ、というのが今回の詩。

data-hacker.blogspot.jp

こちら読んでいて気が付いたんですが、 このrightって引数は以上か未満かどっちにするのか決めろって話ですね。 これは大事。

でも、include.lowestって引数はなんだろう、 ちょっとこれを含めると開区間と閉区間の違いってなんだろうと思って、以下試してみました。

※例:rihgtとinclude.lowestで上限の取り扱いが変わる(]、)の違い)
> cut(c(1:100), breaks = c(1, 50, 100), right = TRUE, include.lowest = TRUE) %>% plyr::count()
         x freq
1   [1,50]   50  # つまり、「50以下」
2 (50,100]   50

> cut(c(1:100), breaks = c(1, 50, 100), right = FALSE, include.lowest = TRUE) %>% plyr::count()
         x freq
1   [1,50)   49  # つまり、「50未満」
2 [50,100]   51

> cut(c(1:100), breaks = c(1, 50, 100), right = TRUE, include.lowest = FALSE) %>% plyr::count()
         x freq
1   (1,50]   49  #「2-50」
2 (50,100]   50  # 「51-100」
3     <NA>    1  # こちらは「1」

> cut(c(1:100), breaks = c(1, 50, 100), right = FALSE, include.lowest = FALSE) %>% plyr::count()
         x freq
1   [1,50)   49   # 「1-49」
2 [50,100)   50  # 「50-99」
3     <NA>    1  # こちらは「100」

…なに、lowest含めるのかどうかじゃないじゃん、最後とか。
ややこしい。。。

ややこしいので絵で示したいと思ったのですが、絵心もないしやる気もないのでやめときます。

しかしまぁ基本的にinclude.lowestはFALSEでは使わないかな。せいぜい0を含めるか否かって時くらいだろうか。。

はい、今回はこれだけです。

ちなみに、factor型データの整理にはforcatsパッケージが便利ですね。 {forcats}パッケージでカテゴリカル変数(factor型データ)をいじってみる