[[dplyr]] の `mutate()` で作成した新しい列は、同一の `mutate()` 内で即座に利用できる。これにより、段階的な計算を効率的に行い、変換を単一のパイプラインで簡潔に実現できる。
```r
diamonds |>
mutate(
volume = x * y * z, # 体積を計算
mean_volume = mean(volume), # 体積の平均を計算
is_above_mean = if_else( # 体積が平均を超えているか判定
volume > mean_volume,
TRUE,
FALSE
),
.keep = "used"
)
```
```
# A tibble: 53,940 × 6
x y z volume mean_volume is_above_mean
<dbl> <dbl> <dbl> <dbl> <dbl> <lgl>
1 3.95 3.98 2.43 38.2 130. FALSE
2 3.89 3.84 2.31 34.5 130. FALSE
3 4.05 4.07 2.31 38.1 130. FALSE
4 4.2 4.23 2.63 46.7 130. FALSE
5 4.34 4.35 2.75 51.9 130. FALSE
6 3.94 3.96 2.48 38.7 130. FALSE
7 3.95 3.98 2.47 38.8 130. FALSE
8 4.07 4.11 2.53 42.3 130. FALSE
9 3.87 3.78 2.49 36.4 130. FALSE
10 4 4.05 2.39 38.7 130. FALSE
# ℹ 53,930 more rows
# ℹ Use `print(n = ...)` to see more rows
```
## 関連ノート
- **[派生]** [[dplyr の mutate() で関与または作成された列のみを保持する]]: 本ノートの連鎖的な列作成の結果を必要な列だけに整えるために併用する
- **[派生]** [[dplyr の mutate() で任意の位置に新しい列を作成する]]: `mutate()` 周辺機能として一緒に押さえておく