需要帮助从R中的日期中删除时间模式

时间:2019-06-14 15:07:12

标签: r gsub

我想摆脱日期列中的时间戳。

在R中使用gsub。似乎无法找出要使用的模式。

"2019-04-03T20:31:47Z"

希望获得一些帮助。到目前为止,这还行不通:

gsub("T[:digit:]$", "", week0_album$created)

5 个答案:

答案 0 :(得分:5)

我们可以使用anydate中的anytime

library(anytime)
anydate(str1)
#[1] "2019-04-03"

数据

str1 <- "2019-04-03T20:31:47Z"

答案 1 :(得分:3)

无需使用gsub,只需使用as.Date中的base函数即可解决此问题。

as.Date("2019-04-03T20:31:47Z")

答案 2 :(得分:2)

您还可以使用lubridate软件包:

library(lubridate)

str <- "2019-04-03T20:31:47Z"
date(str)

# [1] "2019-04-03"

答案 3 :(得分:1)

或者,如果您坚持保持基本性格和个性,则此正则表达式将有所帮助:

continue_link = driver.find_element_by_link_text('Continue')
continue_link = driver.find_element_by_partial_link_text('Conti')

答案 4 :(得分:1)

有很多方法可以做到这一点。格式"2019-04-03T20:31:47Z"使我相信这些日期来自某种分隔文件(CSV,TSV),因此最好的做法可能是使用正确的数据类型导入它们:

# An example string.
s <- "2019-04-03T20:31:47Z"

# Use `colClasses` to use correct data type on import.
read.csv(text = s, header = F, col.names = "dates", colClasses = "Date")

#### OUTPUT ####

        date
1 2019-04-03

您也可以使用正则表达式,但是更简单的方法就足够了。您真的只想删除T之后的所有内容,所以:

sub("T.*", "", s)

但是日期作为Date对象更有用,因此建议您转换字符串。您可以在as.Date bing之后在上述字符串上调用sub,但是as.Date也可以单独很好地运行(其他人给出了这个答案。完整性,因为我认为这是比sub并使用日期作为字符串更好的做法。)

as.Date(s)