web-dev-qa-db-ja.com

データフレームの列名としての番号

Rがデータフレームの列名として番号を使用できない理由はありますか?

また、data.frame(XX)を実行すると、先頭に数字があるすべての列ヘッダーにXが追加されることにも注意してください。

18
Nathaniel Saxe

はい。Rではオブジェクトの名前を数字で始めることはできないためです。 data.frameを使用してattach()を呼び出すと、いくつかの問題が発生します。

data.frame(およびread.table)関数にはcheck.namesパラメーターがあります(デフォルトはTRUE

TRUEの場合、データフレーム内の変数の名前がチェックされ、構文的に有効な変数名であり、重複していないことが確認されます。必要に応じて、(make.namesによって)調整されます。

?make.namesから:

構文的に有効な名前は、文字、数字、ドットまたは下線文字で構成され、文字またはドットの後に数字が続きません。 [...]必要に応じて、文字「X」が先頭に追加されます。

20
Shane

私のために働く

data.frame(`1`=rnorm(3), `2`=head(letters,3), check.names=FALSE)
#        1 2
# 1 0.5019 a
# 2 1.1148 b
# 3 0.4787 c
26
Marek