質問
変数のリスト(クラス:XTS)があると仮定します .GlobalEnv
次のように識別されます:
ABC.xyz
DEF.xyz
GHI.xyz
これらの変数は、関数を介して生成されます。
現在、各変数の「列ヘッダー」は、元の関数の出力からナンセンスです。
これらの各変数の列を変数名の最初の3文字に変更し、次に汎用サフィックスを変更したいと思います。いう:
".XXX"
関数を使用するクイックループを書き込もうとしました dimnames(x)
これを達成することは次のとおりです。
rename.list <- ls(pattern="*.xyz",envir=.GlobalEnv)
for (i in 1:length(rename.list)){
dimnames(rename.list[i]) <-list(
NULL,
c(paste(substr(rename.list[i],0,3),".XXX",sep="")))
}
これにより、エラーが生成されます。
error in dimnames(rename.list[i]) <- list(NULL, c(paste(substr(rename.list[i], 0, 3), :
'dimnames' applied to non-array
私は見えます どうして このエラーが発生します(rename.listでdimnamesを使用してXTSオブジェクトではなく名前自体を呼び出します)が、これを回避する方法はわかりません。使用してみました get
等
詳細:
R 2.13 WIN 7パッケージ「XTS」ロード。
あらゆる助けに感謝します(またはループを避けるための提案!)
解決
あなたが試すことができます assign
:
tmp <- get(rename.list[i])
names(tmp) <- ...
assign(rename.list[i], tmp, envir=.GlobalEnv)
所属していません StackOverflow