3

たとえば、数値の列ラベルを持つマトリックスがあります。

1,2,3
1,2,3
4,5,6
7,8,9

このデータを R の変数にロードしas.matrix(read.table("myfile", sep=",", header=TRUE)て結果の行列を出力すると、列ヘッダーの前に X が追加され、この余分な文字がプロットなどに表示されます。

     X1     X2     X3
[1,]  1      2      3
[2,]  4      5      6
[3,]  7      8      9

どうすればこの動作を停止できますか?

4

1 に答える 1

7

に供給check.names=FALSEread.tableます。

data.framesにこのような非標準の名前がある場合、それらの列への参照は目盛りで囲む必要があることに注意してください。

my.df <- read.table(text='1,2,3
1,2,3
4,5,6
7,8,9', header=TRUE, sep=',', check.names=FALSE)

my.df$`1`
with(my.df, `1`)
attach(k)
`1`

また、1transformなどのへの呼び出しは、デフォルトの引数を使用して呼び出すため、列名を標準化された形式(、、)に置き換えます。transform(my.df,=1:3)X1X2X3transformdata.frame()

を設定するcheck.names=FALSEと、非常に特定の状況で役立ちますが、列名と構文以外の名前が重複する可能性があり、後で問題が発生する可能性があります。これを使用するときは注意してください。

data.frame()check.names=TRUE多くのコンテキストでRはデータフレームの列名をそれ自体で変数として解釈しようとするため、デフォルトで使用します。列名が構文的に有効な名前ではない場合(を参照?make.names)、または上記のようにバックティックで保護されている場合、これらのコンテキストでエラーが発生します。

于 2012-11-05T15:28:45.270 に答える