2015-03-02 3 views
0

Я совершенно новичок в R и программировании!Переименование колонки в R

Я импортирую ежедневные данные запаса с помощью quantmod в R. Я создал объект для импорта всех данных за один раз.

MyStock <- c("AAPL","FB",...) 

Названия каждого столбца включает в себя имя тикер (например. AAPL.Open), который я просто хотел бы переименовать (Open). Я могу сделать это с помощью colnames() для каждого тикера, но я хотел бы сделать это, используя мой объект, чтобы сэкономить время. Как мне это сделать?

Спасибо!

+5

Просьба указать [воспроизводимый пример] (http://stackoverflow.com/q/5963269/271616). –

+0

Вот полный код, который я использую: – JKFY13

+0

Не пытайтесь помещать свой код в комментарий. Измените это на свой вопрос. –

ответ

1

Вы можете попробовать использовать gsub удалить имя тикер из колонок:

colnames(MyStock) = gsub(pattern = "AAPL.", replacement = "", x = colnames(MyStock), fixed = TRUE) 

Однако
1. как предложил Иисусу, вы бы лучше обеспечить воспроизводимый пример в противном случае люди будут бороться, чтобы понять, точно ваш вопрос и не будет правильно отвечать
2. Подумайте, если вы действительно этого хотите. Он избегает смешивать 2 тикера. Достаточно несколько функций от quantmod и xts будут по-прежнему работать, если имя тикера является частью имени столбца. Может быть, вам следует следовать тому же соглашению? Вы можете проверить код quantmod::Cl, чтобы узнать, как это делается.

2

Gsub, как указано выше, или использовать функцию Strsplit В зависимости от того, где AAPL.Open появляется в столбцах &, извлеките соответствующий элемент. Что-то вроде:

MyStock <- c("AAPL.OPen.XX","FB.AAPL.Open.XX") 
    MyStock <- sapply(strsplit(MyStock, "AAPL."), "[", 2) 
Смежные вопросы