概要
- 行名の設定は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」などの名前が、行名として使われていることが確認できます。