[[R]] 言語では、データフレームのカラムを選択する際、通常はシングルクオートやダブルクオートで囲む必要がない。
```r
df |>
select(name, age, address)
```
この仕様により、コードの記述量が減って便利である一方、R の識別子規則を遵守していないカラム (非構文的名前) を選択しようとすると、構文エラーが発生する。
```r
df |>
select(名前, 年齢, 住所) # 構文エラー
```
これを回避するには、バッククォートまたはダブルクオートでエスケープする必要がある。
```r
df |>
select(`名前`, `年齢`, `住所`) # OK
```
ダブルクオートでもエスケープできるが、コミュニティの慣習 [^1] として、バッククォートでエスケープされていることが多い。
ここまで [[dplyr]] の `select()` を例にしたが、これは dplyr 固有の挙動ではなく R の構文機能なので、非構文的名前を扱う他の文脈でも同じようにエスケープが必要になる。
`
演算子で列を取り出すとき:
```r
df$名前 # 構文エラー
df
名前` # OK
```
formula で変数を参照するとき:
```r
lm(`売上` ~ `単価` + `数量`, data = df)
```
## 関連ノート
- **[派生]** [[ggplot2 で日本語の文字化けを直す方法]]: 本ノートのカラム名エスケープと並ぶ、R で CJK を扱う話題
[^1]: https://jhudatascience.org/intro_to_r/resources/quotes_vs_backticks.html