如何使用 R 从包含日期和时间的列中删除日期

How to remove the date from a column containing both date and time using R

我读了一个csv文件

input <- read.csv("abc.csv",header=FALSE)

数据框看起来像..

我想要这样的预期结果.. 在时间戳列中,我想将“2017/03/10 08:35:07.996”替换为仅“08:35:07.996".

尝试了很多,但可以找到任何 solution.Please 帮助

我们可以将 digits.secs 设置为 3,然后将 'timeStamp' 转换为 DateTime class strptimeformat it

op <- options(digits.secs=3)
input$timeStamp <- format(strptime(input$timeStamp, "%Y/%m/%d %H:%M:%OS"), "%H:%M:%OS")

不过,最好不要在时间戳上使用正则表达式,一种方法是匹配一个或多个非白色 space (\S+) 字符后跟一个或多个白色 space (\s+) 从字符串的开头 (^) 并将其替换为空格 ("") 以便字符串的其余部分,即时间部分保留

input$timeStamp <- sub("^\S+\s+", "", input$timeStamp)

使用stringr库处理字符串:

library(stringr) #Do install.packages("stringr") if you don' have it
input <- read.csv("abc.csv",header=FALSE)
input$timeStamp <- str_split(as.character(input$timeStamp)," ")[[1]][2]

您可以使用 tidyr 包中的单独函数将列分成两部分...

newDat <- separate(Dat, timeStamp, into = c("date", "time"), sep = " ")

如果不需要,只需删除日期列即可。