下記のようなデータフレームがあり、この表の行名(左側の列)と列名(一番上のヘッダー行)とを変更したい場合。
| Estimate | Std. | Error | Pr(>|z|) | OR | CI_low | CI_high |
|---|---|---|---|---|---|---|
| (Intercept) | -1.160 | 2.883 | 0.687 | 0.31 | 0.00 | 89.13 |
| Age | 0.003 | 0.027 | 0.915 | 1.00 | 0.95 | 1.06 |
| Sex | 0.433 | 0.477 | 0.364 | 1.54 | 0.61 | 3.93 |
| LBD_subtype | 0.595 | 0.468 | 0.204 | 1.81 | 0.72 | 4.54 |
| ADNC | -0.756 | 0.551 | 0.170 | 0.47 | 0.16 | 1.38 |
行名 (row name) の変更
“rownames”
rownames(x) <- value
上表の4行目、”LBD_subtype” のアンダースコアを外して、”LBD subtype” に変更したい場合(データフレーム名は “res3″)。
rownames(res3) <- c("(Intercept)", "Age", "Sex", "LBD subtype", "ADNC")
#処理後の結果を反映
print(rownames(res3))
※ 関数を実行した時点では列名は変化しない。処理後の結果を反映させるために代入演算子での指定が必要。
| Estimate | Std. | Error | Pr(>|z|) | OR | CI_low | CI_high |
|---|---|---|---|---|---|---|
| (Intercept) | -1.160 | 2.883 | 0.687 | 0.31 | 0.00 | 89.13 |
| Age | 0.003 | 0.027 | 0.915 | 1.00 | 0.95 | 1.06 |
| Sex | 0.433 | 0.477 | 0.364 | 1.54 | 0.61 | 3.93 |
| LBD subtype | 0.595 | 0.468 | 0.204 | 1.81 | 0.72 | 4.54 |
| ADNC | -0.756 | 0.551 | 0.170 | 0.47 | 0.16 | 1.38 |
列名 (column name) の変更
“dplyr” パッケージの “rename”
今回は、”dplyr” パッケージの “rename” で。
“rename()” だけでいいんだけど、他のパッケージとバッティングする場合は、前に “dplyr::” をつける。
列名の指定に “” は不要。
rename(data, 変更後の列名 = 変更前の列名)
dplyr::rename(res3, B = Estimate, P value = Pr(>|z|), SE = Std. Error, 95% CI (low) = CI_low, 95% CI (high) = CI_high)
#処理後の結果を反映
print(colnames(res3))
パイプ演算子でつなげる場合。
データフレームの指定と、列名を変更したデータフレームの代入を同時に行えるので便利。
res3 <- res3 %>%
dplyr::rename(B = Estimate, P value = Pr(>|z|), SE = Std. Error, 95% CI (low) = CI_low, 95% CI (high) = CI_high)
| B | SE | P value | OR | 95% CI (low) | 95% CI (high) | |
|---|---|---|---|---|---|---|
| (Intercept) | -1.160 | 2.883 | 0.687 | 0.31 | 0.00 | 89.13 |
| Age | 0.003 | 0.027 | 0.915 | 1.00 | 0.95 | 1.06 |
| Sex | 0.433 | 0.477 | 0.364 | 1.54 | 0.61 | 3.93 |
| LBD subtype | 0.595 | 0.468 | 0.204 | 1.81 | 0.72 | 4.54 |
| ADNC | -0.756 | 0.551 | 0.170 | 0.47 | 0.16 | 1.38 |
列番号で指定もできる。
rename(data, 変更後の列名 = 列番号)
res3 %>%
dplyr::rename(res3, "beta" = 1)
#処理後の結果を反映
print(colnames(res3))
| beta | SE | P value | OR | 95% CI (low) | 95% CI (high) | |
|---|---|---|---|---|---|---|
| (Intercept) | -1.160 | 2.883 | 0.687 | 0.31 | 0.00 | 89.13 |
| Age | 0.003 | 0.027 | 0.915 | 1.00 | 0.95 | 1.06 |
| Sex | 0.433 | 0.477 | 0.364 | 1.54 | 0.61 | 3.93 |
| LBD subtype | 0.595 | 0.468 | 0.204 | 1.81 | 0.72 | 4.54 |
| ADNC | -0.756 | 0.551 | 0.170 | 0.47 | 0.16 | 1.38 |
“colnames”
普通に “colnames” でも変更できるけれど、その場合は、変更したい列以外の列名も全て指定する。
colnames(x) <- value
colnames(res3) <- c("B", "SE", "P value", "OR", "95% CI (low)", "95% CI (high)")
#処理後の結果を反映
print(colnames(res3))
| B | SE | P value | OR | 95% CI (low) | 95% CI (high) | |
|---|---|---|---|---|---|---|
| (Intercept) | -1.160 | 2.883 | 0.687 | 0.31 | 0.00 | 89.13 |
| Age | 0.003 | 0.027 | 0.915 | 1.00 | 0.95 | 1.06 |
| Sex | 0.433 | 0.477 | 0.364 | 1.54 | 0.61 | 3.93 |
| LBD subtype | 0.595 | 0.468 | 0.204 | 1.81 | 0.72 | 4.54 |
| ADNC | -0.756 | 0.551 | 0.170 | 0.47 | 0.16 | 1.38 |
References
Your All-in-One Learning Portal: GeeksforGeeks is a comprehe…
Rで扱うことの多いデータフレームですが、みなさんはどのように処理をしているでしょうか? 私は既存の{base}パッケージ…
今回は【行の操作】直感的な操作ができる R パッケージ dplyr の簡単な使い方 その1 - サービス化する世界 │ …
dplyr::renameを使った列名の変更 dplyrで列名を変更するには、rename()関数を使用します。 ren…
ローデータから分析対象とする変数のみ抽出し(個人情報など、保持すべきでない変数を削除するなど)、情報を失わない範囲で分析…



