オブジェクトとその中のcolnamesの名前を変更することは、2段階のプロセスです。
SPY <- GSPC # assign the object to the new name (creates a copy)
colnames(SPY) <- gsub("GSPC", "SPY", colnames(SPY)) # rename the column names
それ以外の場合、getSymbols関数を使用すると、自動割り当てを行わないことができます。その場合、最初の手順をスキップできます(列の名前を変更する必要があります)。
SPY <- getSymbols("^GSPC", auto.assign=FALSE)
@backlinからのコメント
Rはいわゆる遅延評価を採用しています。その効果は、「コピー」するときに、SPY <- GSPC
実際にはメモリに新しいスペースを割り当てないことですSPY
。Rは、オブジェクトが同一であることを認識しており、オブジェクトの1つが変更された場合(つまり、次の行の列名を変更した場合など、オブジェクトが同一でなくなった場合)にのみメモリに新しいコピーを作成します。だから
SPY <- GSPC
rm(GSPC)
colnames(SPY) <- gsub("GSPC", "SPY", colnames(SPY))
実際にコピーすることはGSPC
なく、単に新しい名前(SPY
)を付けてから、Rに名()を忘れるように指示しGSPC
ます。その後、列名を変更すると、新しいコピーを作成する必要がなくなりますSPY
。GSPC
これは、中間コピーを作成せずに、オブジェクトの名前を実際に変更したことを意味します。