Исправление dimnames (x) объектов xts в R с помощью цикла - PullRequest
2 голосов
/ 11 января 2012

Предположим, у меня есть список переменных (класс: 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 Пакет 'xts' загружен.

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

1 Ответ

2 голосов
/ 11 января 2012

Вы можете попробовать assign:

tmp <- get(rename.list[i])
names(tmp) <- ...
assign(rename.list[i], tmp, envir=.GlobalEnv)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...