如何将一列字符变成日期形式?
How to change a column of characters into date form?
我目前有这样的数据:
data
我想将 'date' 列更改为日期类型。 (现在是字符)。
我试过下面的代码,但它给了我 'NA' 作为 result。
as.Date(data$Date, format = "%a %d-%m-%Y %I:%M %p")
我在格式化日期以适应我的数据格式时是否犯了错误?
很遗憾,我们没有您的数据(我们有您数据的 图片 ,但唯一的使用方法是手动转录 - 最好包含数据作为问题中的文本)。
无论如何,使用相同格式的简短示例:
dates <- c("Wed 25-Apr-2018 3:20 PM", "Thu 10-Mar-2022 10:53 AM")
我们可以通过以下方式获取日期:
as.Date(dates, "%a %d-%b-%Y %I:%M %p")
#> [1] "2018-04-25" "2022-03-10"
请注意,这不会保留时间,为此您可能需要使用 R 的内置 date-time 格式,POSIXct
。我们可以通过以下方式获得:
strptime(dates, "%a %d-%b-%Y %I:%M %p")
#> [1] "2018-04-25 15:20:00 BST" "2022-03-10 10:53:00 GMT"
我认为主要问题是您使用 %m
作为月份,但这只会以十进制数字格式解析月份。您需要 %b
个月 text-abbreviations 个月。
我目前有这样的数据: data
我想将 'date' 列更改为日期类型。 (现在是字符)。
我试过下面的代码,但它给了我 'NA' 作为 result。
as.Date(data$Date, format = "%a %d-%m-%Y %I:%M %p")
我在格式化日期以适应我的数据格式时是否犯了错误?
很遗憾,我们没有您的数据(我们有您数据的 图片 ,但唯一的使用方法是手动转录 - 最好包含数据作为问题中的文本)。
无论如何,使用相同格式的简短示例:
dates <- c("Wed 25-Apr-2018 3:20 PM", "Thu 10-Mar-2022 10:53 AM")
我们可以通过以下方式获取日期:
as.Date(dates, "%a %d-%b-%Y %I:%M %p")
#> [1] "2018-04-25" "2022-03-10"
请注意,这不会保留时间,为此您可能需要使用 R 的内置 date-time 格式,POSIXct
。我们可以通过以下方式获得:
strptime(dates, "%a %d-%b-%Y %I:%M %p")
#> [1] "2018-04-25 15:20:00 BST" "2022-03-10 10:53:00 GMT"
我认为主要问题是您使用 %m
作为月份,但这只会以十进制数字格式解析月份。您需要 %b
个月 text-abbreviations 个月。