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

时间:2017-03-24 10:05:17

标签: r data-cleaning

我已阅读csv文件

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

,数据框看起来像..

look here

我想要这样的预期结果.. 在timeStamp栏中,我想替换&#34; 2017/03/10 08:35:07.996 &#34;仅限&#34; 08:35:07.996 &#34;。

尝试了很多,但可以找到任何解决方案。请帮助

3 个答案:

答案 0 :(得分:1)

我们可以将digits.secs设置为3,然后转换&#39; timeStamp&#39;使用strptimeformat

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

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

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

答案 1 :(得分:0)

使用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]

答案 2 :(得分:0)

您可以使用tidyr包中的单独函数将列拆分为两个...

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

然后,如果您不想要它,只需删除日期列。