R データフレームの行名、列名を扱う

UB3/informatics/r/dataframe

このページの最終更新日: 2024/02/05

  1. 行名をデータに移動、またはその逆
  2. colnames 関数で列名を変更
  3. rename 関数で列名を変更
  4. その他メモ

広告

行名をデータに移動、またはその逆

tibble::rownames_to_column を使う。mtcars を例にしてやってみよう。

mtcars2 <- mtcars %>% tibble::rownames_to_column(var = "Car")
mtcars3 <- mtcars2 %>% tibble::column_to_rownames(var = "Car")

mtcars2 では、mtcars の行名が Car というカラムに入り、かわりに通し番号の行名が割り当てられる。mtcars3 では、column_to_rownames でもとに戻している。

cars dataframe cars dataframe

join() 関数 でデータフレームを結合とするときは、結合に使うデータが行名ではなくカラムになければならないので、この作業は頻繁に行うことになる。

colnames 関数で列名を変更

列名の変更。

colnames(dataframe) <- c("列名1", "列名2")

これの応用で、列名の文字を置換したいときは次のようにする。列名を抽出し、置換して同じところに入れる感じ。

colnames(dataframe) <- colnames(dataframe) %>% str_replace("A", "B")

この作業は sub() や gsub() でも同じようにできる。

names <- colnames(dataframe)
names <- sub("置換後の文字列", "置換したい文字列", names)
colnames(dataframe) <- names

rename 関数で列名を変更

rename("変更後の列名" = "もとの列名") という形になる。%>% でつなぐ。

dataframe %>% rename("新列名1" = "旧列名1", "新列名2" = "旧列名2")

%>% を使わない場合は、

dataframe <- rename(dataframe, "新列名1" = "旧列名1", "新列名2" = "旧列名2)

その他メ

  • データフレームの行名を削除したいときは、rownames(df) <- NULL でよい。
  • magrittr::set_colnames() で、列名としたい文字列のベクトルを読み込んで、一気に列名の変更が可能 (参考)。

広告

References

  1. Rの data frame から行や列を選択して取り出す. Link.
  2. R-Tips 39. データフレーム事始. Link.
  3. 井関龍太のページ. Rでクリップボードからデータを読み込む. Link: Last access 2018/12/09.
  4. R:データフレームの列を入れ替える・削除する。 Link: Last access 2020/06/09.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。