我在字符向量中有日期,我正在寻找一种使用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()
解决方案?
答案 0 :(得分:3)
我们可以使用strftime
。
strftime(as.Date(inp, format="%d/%m/%Y"), format="%d/%m/%Y")
# [1] "15/01/2019" "05/05/2019"
数据
inp <- c("15/1/2019", "5/5/2019")
答案 1 :(得分:1)
我不确定我是否理解这个问题。 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。将对象格式化为字符串是另一种操作。
我希望这可以解决所有问题。