Удаление последних 3 символов в указанном столбце c в каждой строке - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть следующий код. Я хотел бы удалить каждые последние 3 символа из каждой строки в столбце REAL_TIME_ARR, чтобы не отображались секунды.

Кроме того, я хотел бы добавить 0 перед каждым значением, которое начинается с одного значения (1, 2, 3, 4, 5, 6, 7, 8, 9).

    TwentyFourSeptTrainData
    REAL_TIME_ARR        
 1        8:38:01                
 2        8:40:02                
 3        8:45:22                
 4        9:00:59                
 5        9:07:21                
 6        11:10:11        
 and so on and so on        

Мои желаемые данные:

  TwentyFourSeptTrainData
     REAL_TIME_ARR        
  1        08:38                
  2        08:40                
  3        08:45                
  4        09:00                
  5        09:07                
  6        11:10        
  and so on and so on   

Ответы [ 2 ]

2 голосов
/ 24 февраля 2020

Я думаю, что ваш лучший вариант - признать, что вы работаете со временем, и использовать функции R для дат и времени, чтобы прочитать строку, имеющуюся в качестве даты и времени, и записать ее обратно в нужном формате.

Так что попробуйте:

REAL_TIME_ARR_2 <- as.character( 
   as.POSIXlt(REAL_TIME_ARR, format="%H:%M:%S"), 
   format="%H:%M"
   )
0 голосов
/ 24 февраля 2020
stringr::str_pad(
    substring(mydata$REAL_TIME_ARR,1,nchar(mydata$REAL_TIME_ARR)-3), 
    width=5, side = "left", pad = "0")
[1] "08:38" "08:40" "08:45" "09:00" "09:07" "11:10"

Используя подстроку, вы можете сохранить только символы от 1 до общего (nchar) минус три. Оберните это с stringr str_pad, чтобы добавить нули, где это необходимо. Вы можете назначить это обратно в mydata$REAL_TIME_ARR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...