第5章 tidyverse(dplyr)で再現 ・ ノック 74 / 100 ・ [[000 - はじめに(使い方と目次)|目次]]<br>
← 前 [[073 - 列名を変える]] ・ 次 → [[075 - 一つの列をベクトルで取り出す]]
> [!info] slice() は行番号で行を取り出す動詞です
> **`slice()`**(スライス)は、行番号(インデックス)を指定して行を取り出す動詞です。`slice(iris, 1:3)` と書くと1行目から3行目を取り出します。`1:3` は「1から3の連番」という意味です。
>
> Rベースでは `iris[1:3, ]` のように `[]` を使って行を取り出していました。`slice()` を使うとパイプと組み合わせやすくなります。なお、条件で行を絞るときは `filter()`、行番号で取り出すときは `slice()` と使い分けます。先頭行を取り出すだけなら `slice_head(n = 3)` という専用の関数もあります。
## 問題
`iris` の1行目から3行目を `slice()` で取り出してみましょう。
> [!tip] ヒント
> `slice(データフレーム, 行番号の範囲)` の形で書きます。連続した行番号は `:` で指定できます。
> [!success]- 回答を見る
> ```r
> library(dplyr)
> slice(iris, 1:3)
> ```
> ```
> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
> 1 5.1 3.5 1.4 0.2 setosa
> 2 4.9 3.0 1.4 0.2 setosa
> 3 4.7 3.2 1.3 0.2 setosa
> ```
> Rベースでは `iris[1:3, ]` と書いていましたが、`slice()` を使うとパイプの流れの中に自然に組み込めます。