はじめに
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
上記の実行コードで、"X02" "X03" "X04"という列名が一気に追加されました。 なかなか秀逸と思います。