2013-07-22 4 views
0

У меня есть аналогичная проблема для следующего вопроса о преобразовании нерегулярных временных строк. Где у меня есть временной ряд класса символов, который я хотел бы заказать.R: упорядочение и преобразование нерегулярных строк времени

R: transform irregular time strings

Вместо запятых, мои миллисекунды в разделенных'.'. Однако, когда я пытаюсь применить шаг gsub, все мои данные заменяются полуколониями.

головки (время, п = 5)

[1] "05: 48: 59,306" "05: 48: 56,246" "05: 48: 53,214" «05: 48: 52,662 " "05: 48: 50,203"

< time.new - GSUB (". " ":", время)

головка (time.new, п = 10)

[1] "::::::::::::" "::::::::::::" "::::::::::::" "::: :::::::::: "" ::::::::::::

Если бы я мог пройти этот шаг, я бы теоретически вычислил десятичные минуты как другой столбец, а затем упорядочил на основе на десятичные минуты. Что мне не хватает с частью gsub? : p

Любая помощь с благодарностью.

ответ

1

Вы должны использовать два \ до . в gsub().

gsub("\\.", ":", time) 
1

Применение fixed=TRUE:

gsub(".", ":", time,fixed=TRUE) 

Например:

time <- c("05:48:59.306", "05:48:56.246" ,"05:48:53.214" ,"05:48:52.662", "05:48:50.203") 
gsub(".", ":", time,fixed=TRUE) 
"05:48:59:306" "05:48:56:246" "05:48:53:214" "05:48:52:662" "05:48:50:203" 
+0

Рассуждений быть, конечно, что '.' относится к "любой одиночный символ" в' regex'. – thelatemail

Смежные вопросы