Base R

# データフレームの，特定の列が特定の値を取る行を抽出する

iris データセットの，Sepal.Length の値が 5.2 である行を取り出す（代入すれば，新しいデータフレームができる）。

最後の "," を忘れるな。

```R
> iris[iris["Sepal.Length"] == 5.2,]
   Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
28          5.2         3.5          1.5         0.2     setosa
29          5.2         3.4          1.4         0.2     setosa
33          5.2         4.1          1.5         0.1     setosa
60          5.2         2.7          3.9         1.4 versicolor
```
または

```R
> subset(iris, Sepal.Length == 5.2)
   Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
28          5.2         3.5          1.5         0.2     setosa
29          5.2         3.4          1.4         0.2     setosa
33          5.2         4.1          1.5         0.1     setosa
60          5.2         2.7          3.9         1.4 versicolor
```

# データフレームの，特定の列が特定の範囲の値を取る行を抽出する

iris データセットの，Sepal.Width の値が 3.5 以上，3．7 以下である行を取り出す（代入すれば，新しいデータフレームができる）。

条件式に & を使う（&& ではない）。

最後の "," を忘れるな。


```R
> iris[3.5 <= iris["Sepal.Width"] & iris["Sepal.Width"] <= 3.7,]
    Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
1            5.1         3.5          1.4         0.2    setosa
5            5.0         3.6          1.4         0.2    setosa
11           5.4         3.7          1.5         0.2    setosa
18           5.1         3.5          1.4         0.3    setosa
22           5.1         3.7          1.5         0.4    setosa
23           4.6         3.6          1.0         0.2    setosa
28           5.2         3.5          1.5         0.2    setosa
37           5.5         3.5          1.3         0.2    setosa
38           4.9         3.6          1.4         0.1    setosa
41           5.0         3.5          1.3         0.3    setosa
44           5.0         3.5          1.6         0.6    setosa
49           5.3         3.7          1.5         0.2    setosa
110          7.2         3.6          6.1         2.5 virginica
```
または
```R
> subset(iris, 3.5 <= iris["Sepal.Width"] & iris["Sepal.Width"] <= 3.7)
    Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
1            5.1         3.5          1.4         0.2    setosa
5            5.0         3.6          1.4         0.2    setosa
11           5.4         3.7          1.5         0.2    setosa
18           5.1         3.5          1.4         0.3    setosa
22           5.1         3.7          1.5         0.4    setosa
23           4.6         3.6          1.0         0.2    setosa
28           5.2         3.5          1.5         0.2    setosa
37           5.5         3.5          1.3         0.2    setosa
38           4.9         3.6          1.4         0.1    setosa
41           5.0         3.5          1.3         0.3    setosa
44           5.0         3.5          1.6         0.6    setosa
49           5.3         3.7          1.5         0.2    setosa
110          7.2         3.6          6.1         2.5 virginica
```
# データフレームの，特定の列が特定の範囲の値を取る行の特定の列だけを抽出する

iris データセットの，Sepal.Width の値が 3.9 以上，4.1 以下である行の Petal.Length と Petal.Width だけを取り出す（代入すれば，新しいデータフレームができる）。

条件式に & を使う（&& ではない）。

```R
> iris[3.9 <= iris["Sepal.Width"] & iris["Sepal.Width"] <= 4.1, c("Petal.Length", "Petal.Width")]
   Petal.Length Petal.Width
6           1.7         0.4
15          1.2         0.2
17          1.3         0.4
33          1.5         0.1
```
または
```R
> subset(iris, 3.9 <= iris["Sepal.Width"] & iris["Sepal.Width"] <= 4.1)[c("Petal.Length", "Petal.Width")]
   Petal.Length Petal.Width
6           1.7         0.4
15          1.2         0.2
17          1.3         0.4
33          1.5         0.1
```