2015-04-19 3 views
1

Я хочу изменить формат времени, который у меня есть как столбец («Дата») в моем фрейме данных («данные»). Он импортируется из csv как -Q1 1990 года, и я хотел бы иметь его как -1990Q1-, но моя функция не идеальна. Я пробовал:R Извлечение и объединение символов из ячейки

for (i in 1:length(data$Date)){ 
    data$Date[i] <- paste(substr(data$Date[i], 4,8),substr(data$Date[i], 1,2), 
    sep="") 
    } 

В результате колонна, в которой каждая строка имеет NA, и я не знаю, почему. Может кто-нибудь помочь? Я нашел уже нить Extracting the last n characters from a string in R. В этой угрозе они только упомянули проблему, но не решили ее понятным образом для меня.

Заранее спасибо

+0

Вы, наверное, проверили это: но только в том случае, что класс (данные $ Date)? – mcheema

+0

В клетках есть факторы. –

+0

, то просто используйте данные $ Date <- as.character (данные $ Date), чтобы изменить на строки. При необходимости вы можете вернуться обратно. Я думаю, вам нужно будет подстроить ваши подстрочные вызовы, но я уверен, что вы сможете это сделать, как только получите визуальную обратную связь с результатом команды paste. – mcheema

ответ

1

Вы можете попробовать следующее:

data$Date <- sub('-(\\w+) *(\\d{4})-', '-\\2\\1-', data$Date) 
Смежные вопросы