下記のようなデータフレームがあり、この表の行名(左側の列)と列名(一番上のヘッダー行)とを変更したい場合。
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
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
Rで扱うことの多いデータフレームですが、みなさんはどのように処理をしているでしょうか? 私は既存の{base}パッケージで処理を行なっていましたが、{dplyr}パッケージを知ってからというもの手放せなくなりました。 この{dplyr}を使うと驚くほど簡単に、そして高速にデータフレーム処理を行うことができます。 今回は既存の{base}パッケージと比較しながら、その実力をまとめてみます。 最後まで読んだあかつきには、あなたもきっと虜になっているはず。 辞書代わりにもどうぞ! count rename select,slice mutate 条件分岐(if_else,recorde,case_w…
今回は【行の操作】直感的な操作ができる R パッケージ dplyr の簡単な使い方 その1 - サービス化する世界 │ The World Is Service. の続きです。今回は列の操作をまとめます。使うデータは同じで infert です。■列の操作に使う関数select() 必要な列だけを取り出す。rename() 列の名前を変更する。mutate() 新しい列を追加する。select() を使って age, case, stratum を取り出し、df に入れて 最初のほうを表示させます。 > df head…
dplyr::renameを使った列名の変更 dplyrで列名を変更するには、rename()関数を使用します。 rename(,= ) 新しい列名と古い列名を=で結びます。列名の指定に、""は不要です。 > iris2 head(iris2) 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa magrittrのパイプ演算子との組み合わせ パイプ演算子の%%を使うと、データフレームの指定と、列名を変更したデータフレームの代入を同時に行えるので、非常に便利です。 > iris3 iris3 %% rename(New.Name = Species) > head(iris3) Sepal.