我已阅读csv文件
input <- read.csv("abc.csv",header=FALSE)
,数据框看起来像..
我想要这样的预期结果.. 在timeStamp栏中,我想替换&#34; 2017/03/10 08:35:07.996 &#34;仅限&#34; 08:35:07.996 &#34;。
尝试了很多,但可以找到任何解决方案。请帮助
答案 0 :(得分:1)
我们可以将digits.secs
设置为3,然后转换&#39; timeStamp&#39;使用strptime
和format
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 = " ")
然后,如果您不想要它,只需删除日期列。