Исправление DimNames (x) объектов XTS в R через цикл

StackOverflow https://stackoverflow.com/questions/8815075

  •  26-10-2019
  •  | 
  •  

Вопрос

Предположим, что у меня есть список переменных (класс: xts) в .GlobalEnv определено следующим образом:

ABC.xyz
DEF.xyz
GHI.xyz

Эти переменные генерируются через функцию.

В настоящее время «заголовки столбцов» в каждой переменной являются бессмысленными от вывода исходной функции.

Я хотел бы переименовать столбцы в каждой из этих переменных в первые три буквы имени переменной, а затем общий суффикс; сказать:

".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

я вижу Почему Эта ошибка возникает (используя Dimnames на rename.list, вызывает само имен, а не объект XTS), но не уверен, как обойти это. Пытался использовать get и т.п.

Подробности:

R 2.13 Win 7 Package 'XTS' загружен.

Заранее большое спасибо за любую помощь (или предложения, чтобы вообще избежать цикла!)

Это было полезно?

Решение

Можешь попробовать assign:

tmp <- get(rename.list[i])
names(tmp) <- ...
assign(rename.list[i], tmp, envir=.GlobalEnv)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top