如何使用 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 strptime
和 format
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 = " ")
如果不需要,只需删除日期列即可。
我读了一个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 strptime
和 format
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 = " ")
如果不需要,只需删除日期列即可。