【R】dplyover
2021年4月4日
1. はじめに
dplyover
は、dplyrの機能拡張を目指すパッケージです。主にColumnを操作するacrossの拡張です。
2. インストール
Githubからインストールできます。
remotes::install_github("TimTeaFan/dplyover")
3. つかってみる
ラグをつけてカラムを拡張します。
library(dplyr) library(dplyover) tibble(dat = 1:12) %>% mutate(over(c(1:3), list(lag = ~ lag(dat, .x)), .names = "dat_{fn}{x}"))
# A tibble: 12 x 4
dat dat_lag1 dat_lag2 dat_lag3
<int> <int> <int> <int>
1 1 NA NA NA
2 2 1 NA NA
3 3 2 1 NA
4 4 3 2 1
5 5 4 3 2
6 6 5 4 3
7 7 6 5 4
8 8 7 6 5
9 9 8 7 6
10 10 9 8 7
11 11 10 9 8
12 12 11 10 9
iris <- as_tibble(iris) iris %>% transmute( crossover(starts_with("petal"), 1:5, list(times = ~ .x * .y), .names = "{xcol}_{fn}{y}")) %>% glimpse
Rows: 150
Columns: 10
$ Petal.Length_times1 <dbl> 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, ~
$ Petal.Length_times2 <dbl> 2.8, 2.8, 2.6, 3.0, 2.8, 3.4, 2.8, ~
$ Petal.Length_times3 <dbl> 4.2, 4.2, 3.9, 4.5, 4.2, 5.1, 4.2, ~
$ Petal.Length_times4 <dbl> 5.6, 5.6, 5.2, 6.0, 5.6, 6.8, 5.6, ~
$ Petal.Length_times5 <dbl> 7.0, 7.0, 6.5, 7.5, 7.0, 8.5, 7.0, ~
$ Petal.Width_times1 <dbl> 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, ~
$ Petal.Width_times2 <dbl> 0.4, 0.4, 0.4, 0.4, 0.4, 0.8, 0.6, ~
$ Petal.Width_times3 <dbl> 0.6, 0.6, 0.6, 0.6, 0.6, 1.2, 0.9, ~
$ Petal.Width_times4 <dbl> 0.8, 0.8, 0.8, 0.8, 0.8, 1.6, 1.2, ~
$ Petal.Width_times5 <dbl> 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.5, ~
4.さいごに
dplyrをさらに拡張して使い勝手が向上しています。