我有一个简单的问题。
as.Date函数是如何工作的?
有人能解释一下为什么一个简单的""会改变下面代码中的所有东西吗?
as.Date("03/04/2019")
#[1] "0003-04-19"
as.Date("03/04/2019", "")
#[1] "2019-07-16"发布于 2019-07-16 22:59:02
这直接来自您使用?as.Date查看的帮助页面
## S3 method for class 'character'
as.Date(x, format, tryFormats = c("%Y-%m-%d", "%Y/%m/%d"),
optional = FALSE, ...)字符串x: object to converted.
因此,在第一种情况下,我们不提供format。在本例中,as.Date尝试以下格式:“年-月-日”和“年/月/日”。在本例中,第二个函数“工作”,因此我们得到以下返回:
as.Date("03/04/2019")
[1] "0003-04-20"03解释为年,04解释为月,2019解释为日。因为日期只能是数字,所以只使用前两个数字。
在第二种情况下,我们自己提供格式:
as.Date("03/04/2019", format = "")
[1] "2019-07-16"如果提供了format,as.Date不会尝试任何格式。相反,返回的是strptime("03/04/2019", format = "")。在strptime的帮助页面中,您可以找到以下内容:
strptime的
输入字符串不需要完全指定日期:假设未指定的秒、分钟或小时为零,未指定的年、月或日为当前日期。
因此,您提供了一种格式,但它不包含任何内容,因此返回当前日期。
在任何情况下,您都可以自己指定格式:
as.Date("03/04/2019", format = "%d/%m/%Y")
[1] "2019-04-03"https://stackoverflow.com/questions/57059770
复制相似问题