自在に操る

【R】行名の設定 | 行名を設定する方法を具体例で紹介

2021年6月27日

概要

  • 行名の設定はmagrittr::set_rownames()関数
  • 列を行名に変更する場合はdplyr::column_to_rownames()

イメージ

今回紹介する行名の設定の操作イメージは以下の通りです。

magrittr::set_rownames()

行名を任意の文字列で設定する時はmagrittr パッケージのset_rownames()関数が使えます。

使い方

set_rownames()関数の基本的な使い方は以下のとおりです。

library(magrittr)
set_rownames(x = データフレーム, value = 行名のベクトル)

主な引数は以下の通りです。

  • x:行名を設定したいデータフレームの名前
  • value:行名となる文字列ベクトル

注意すべきポイントとしては、行名のベクトルの長さを行名を設定したいデータフレームの行数と同じにする必要があることです。(「行名 = 行名とする文字列ベクトルの長さ」となる必要がある)

行名を任意の文字列で設定する場合は set_rownames()関数が便利。

具体例

ここでは具体例としてデフォルトで使用できるdatasetパッケージの women データに行名を付ける場合を紹介したいと思います。

womenデータ(全15行)にアルファベット一文字をAからOまで(全15個)行名として名付ける場合のコードは以下の通りです。

library(magrittr)
set_rownames(women, value = LETTERS[1:15]) # 大文字アルファベットの文字列ベクトルであるLETTERS の1番目から15番目までを行名に指定
#>   height weight
#> A     58    115
#> B     59    117
#> C     60    120
#> D     61    123
#> E     62    126
#> F     63    129
#> G     64    132
#> H     65    135
#> I     66    139
#> J     67    142
#> K     68    146
#> L     69    150
#> M     70    154
#> N     71    159
#> O     72    164

出力結果を見てみると行名がA、B、C、、、となっていることが確認できます。このように行数と同じ長さの文字列ベクトルをvalue引数に指定することで行名を設定することができます。

tibble::column_to_rownames()

データフレームの中にある列をそのまま行名に変換する場合はtibbleパッケージのcolumn_to_rownames()関数が便利です。

使い方

column_to_rownames()関数の使い方は以下の通りです。

library(tibble)
column_to_rownames(データフレーム, 列名)

主な引数は以下の通りです。

  • .data:対象となるデータフレーム
  • var:行名に設定したい列の列名

注意すべきポイントは var引数に列名を指定するときは列名を文字列として指定する(ダブルクォーテーションで囲む)必要がある点です。

列の中身を行名に持っていく場合はcolumn_to_rownames()関数を使う。

具体例

今回は具体例として dplyr パッケージの band_instruments データに対して name列を行名に変更する場合のコードを紹介したいと思います。

library(tibble)
column_to_rownames(dplyr::band_instruments, var = "name")
>#        plays
># John  guitar
># Paul    bass
># Keith guitar

出力結果を見てみると、もともとは name 列に格納されていた 「John」「Paul」「Keith」などの名前が、行名として使われていることが確認できます。

-自在に操る