
【2-4】Rで列名を変更する方法
はじめに
第2章ではdata.frameの使い方について紹介しています。
csvやExcelなど外部データを読み込むときは列名を変えたいことはよくあります。
今回は列名を変更する方法について紹介します。
データの準備
#pacmanパッケージがあるかを確認。なければinstall.packagesパッケージをインストール
if (!require("pacman")) install.packages("pacman")
#今回使うパッケージ
pacman::p_load(dplyr, rio)
#データの準備
url <- "https://mitti1210.livedoor.blog/data.xlsx"
data <- import(url, which = "入院", skip = 2)
head(data)

rename()
rename()はdata.frameの列名を変更します。
代表的な使い方は以下の2パターンです。

# rename(データフレーム, 新しい列名 = 古い列名)
temp <-
rename(data, ID = id)
head(temp)
# データフレーム |> rename(新しい列名, 古い列名)
temp <-
data |>
rename(ID = id)
head(temp)

また古い列名に関しては列名以外にも列番号でもOKです。
#rename関数の古い列名は列番号でもOK
temp <-
data |>
rename(ID = 2)
head(temp)
複数列列名を変えたいときは,を使います
temp <-
data |>
rename(ID = id, name = 氏名)
head(temp)
#改行してもOK
temp <-
data |>
rename(
ID = id,
name = 氏名
)
head(temp)

select()
【2-2】で列の選択で使ったselect()でも列の選択と同時に列名を変更することができます。ただし列名の選択を行う時に絞って使うと良いと思います。
# select(新しい列名 = 古い列名)でも列名が変わる
temp <-
data |>
select(ID = id, name = 氏名)
head(temp)
# 上記と同じ。selectとrenameを2回使わなくても良いので上記が便利
temp <-
data |>
select(id, 氏名) |>
rename(ID = id, name = 氏名)

names()
names()を使って直接指定することも可能です。
まずnames()を使ってみましょう。
names(data)
class(names(data))

class()を使うと"character"となっています。つまりnames()は列名をベクトルとして返しています。
ベクトルの◯番目を抽出するには【1-16】で行った[ ]を使います。
temp <- data
names(temp)[2] # 2番めのidが表示されます
names(temp)[2] <- "ID" #これで id が ID に変更されます
names(temp)

まとめ
今回は列名を変更する代表的な方法を紹介しました。
やりかたは色々ありますが使いやすいものを探してみてください。