我有一个字符矢量形式的日期,我正在寻找一种方法来用as.Date()
将它转换为日期格式
vector <- c("15/1/2019", "5/5/2019")
但是,as.Date(vector, format="%d/%m/%Y")
接收前导为零的字符作为输入。我已经找到了很多解决方案:
Input: "15/01/2019"
Output: "15/1/2019"
然而,我需要完全相反的方法才能让as.Date()
正常工作:
Input: "15/1/2019" "5/5/2019"
Output: "15/01/2019" "05/05/2019"
format
参数有什么特殊的格式吗?或者我必须使用substr()
解决方案?
发布于 2019-05-15 06:26:21
我们可以使用strftime
。
strftime(as.Date(inp, format="%d/%m/%Y"), format="%d/%m/%Y")
# [1] "15/01/2019" "05/05/2019"
Data
inp <- c("15/1/2019", "5/5/2019")
发布于 2019-05-15 06:25:28
我不确定我是否理解了这个问题。as.Date()
对您的输入按预期工作:
vector <- c("15/1/2019", "5/5/2019")
dates <- as.Date(vector, format = "%d/%m/%Y")
dates
[1] "2019-01-15" "2019-05-05"
要获得所需的输出,可以使用format
format(dates, "%d/%m/%Y")
[1] "15/01/2019" "05/05/2019"
编辑
从您的评论中可以清楚地看出,您混淆了两个不同的东西。
要使用as.Date()
获取Date对象,需要告诉它输入日期字符串的格式。你有“日-月-年”。所以你把它提供给as.Date()
as.Date(vector, format = "%d/%m/%Y")
结果将始终以年-月-日(YYYY-MM-DD)的形式显示在控制台中。
以选定的格式显示日期是不同的。现在,我们将Date对象格式化为字符串:
format(dates, "%d/%m/%Y")
总结:正确转换的Date对象将始终在控制台中显示为YYYY-MM-DD。将该对象格式化为字符串是另一种操作。
我希望这能把事情说清楚。
https://stackoverflow.com/questions/56139306
复制相似问题