見出し画像

【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)
こうなればOK

rename()

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

【2-3】のmutate()にもありました
# rename(データフレーム, 新しい列名 = 古い列名)
temp <- 
  rename(data, ID = id)
head(temp)

# データフレーム |> rename(新しい列名, 古い列名)
temp <- 
  data |> 
  rename(ID = id)
head(temp)
idがIDに変わりました

また古い列名に関しては列名以外にも列番号でも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)  
idがID、氏名がnameに変わりました

select()

【2-2】で列の選択で使ったselect()でも列の選択と同時に列名を変更することができます。ただし列名の選択を行う時に絞って使うと良いと思います。

# select(新しい列名 = 古い列名)でも列名が変わる
temp <- 
  data |> 
  select(ID = id, name = 氏名)
head(temp)

# 上記と同じ。selectとrenameを2回使わなくても良いので上記が便利
temp <- 
 data |> 
  select(id, 氏名) |> 
  rename(ID = id, name = 氏名)
IDとnameの2列しか選んでいないため2列になりました

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)
idがIDになりました

まとめ

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

この記事が気に入ったらサポートをしてみませんか?