2

XTS オブジェクトを作成し、そのオブジェクトの存続期間中にさまざまな cbind 操作を実行する R コードがあります。一部の列には「adx-1」などの名前が付いています。別の cbind() 操作が実行されるまでは問題ありません。その時点で、「-」文字を含む列はすべて「.」に変更されます。したがって、「adx-1」は「adx.1」になります。

再現するには:

x = xts(order.by=as.Date(c("2014-01-01","2014-01-02")))
x = cbind(x,c(1,2))
x
           ..2
2014-01-01   1
2014-01-02   2

colnames(x) = c("adx-1")
x
           adx-1
2014-01-01     1
2014-01-02     2

x = cbind(x,c(1,2))
x
           adx.1 ..2
2014-01-01     1   1
2014-01-02     2   2

これは数字だけではありません。「test-text」も「test.text」に変更します。複数のダッシュも変更されます。「test-text-two」は「test.text.two」に変更されます。

なぜこれが起こるのか、可能であればそれを止める方法を誰かが説明してもらえますか?

もちろん、命名スキームを変更することもできますが、変更する必要がない場合は変更することをお勧めします。

ありがとう!

4

2 に答える 2

3

merge.xts列名を構文名に変換します。構文名には を含めることはできません-。によると?Quotes

 Identifiers consist of a sequence of letters, digits, the period
 ('.') and the underscore.  They must not start with a digit nor
 underscore, nor with a period followed by a digit.

現在、この動作を変更する方法はありません。

于 2014-09-16T16:07:38.493 に答える