删除每一行中特定列中的最后3个字符

时间:2020-02-24 15:40:12

标签: r string

我有以下代码。我想从REAL_TIME_ARR列的每一行中删除最后3个字符,以便没有秒显示。

此外,我想在以单个值(1、2、3、4、5、6、7、8、9)开头的每个值之前添加一个0。

    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 个答案:

答案 0 :(得分:2)

我认为您最好的选择是识别您正在使用时间,并使用R函数的日期和时间读取您作为日期时间的字符串并以所需的格式写回。

所以尝试:

REAL_TIME_ARR_2 <- as.character( 
   as.POSIXlt(REAL_TIME_ARR, format="%H:%M:%S"), 
   format="%H:%M"
   )

答案 1 :(得分:0)

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的{​​{1}}包装在一起,以在需要的地方添加零。您可以将其分配回str_pad

相关问题