京橋のバイオインフォマティシャンの日常

データ分析、コマンドライン、プログラミングについての技術資料・自己アップデート・悩み事などをまとめています。現在、DL勉強中。

【Rのジミ〜な小技シリーズ】変数で、データフレームに「任意の列名」を追加するTips

pasteなどで連結した文字列を、データフレームの列名にしたい。 そういうときがよくある。

食わず嫌い的に試して無かったけど、「えっ、これできるの?!」という感じである・・・。 文字列の変数で、データフレームの列名を追加できることがわかったので、そのメモである。 R歴 約10年、まだまだ奥が深い。

test <- data.frame(a=1:3, b=4:6, c="abc")
test
#  a b   c
#1 1 4 abc
#2 2 5 abc
#3 3 6 abc

#よくやる列追加のやり方
test$d <- 7:9
test
#  a b   c d
#1 1 4 abc 7
#2 2 5 abc 8
#3 3 6 abc 9

次に、文字列の変数で、データフレームの列名を追加してみる。

#任意の文字列を作成して、列名にする
col01 <- paste0("X", "01")
#[1] "X01"
  
test[,col01] <- NA
test
#  a b   c X01
#1 1 4 abc  NA
#2 2 5 abc  NA
#3 3 6 abc  NA

#複数の任意の文字列を作成して、列名にする
col02 <- paste0("X", c("02", "03", "04"))
col02
#[1] "X02" "X03" "X04"

test[,col02] <- NA
test
#  a b   c d X01 X02 X03 X04
#1 1 4 abc 7  NA  NA  NA  NA
#2 2 5 abc 8  NA  NA  NA  NA
#3 3 6 abc 9  NA  NA  NA  NA