循环指定错误致异常输出:19358类数值含义咨询
R中日期循环输出数值的含义
你看到的19358这类数值,是R语言中Date类型的底层存储值——它代表的是从**1970-01-01(Unix纪元起始日)**到目标日期的天数。
具体细节:
- 用
seq.Date创建的dates是Date类向量,表面显示2023-01-01这类日期格式,但R内部是以整数形式存储:每个日期对应一个整数,这个整数就是该日期与1970年1月1日的天数差。 - 直接遍历
dates元素时,R会自动把Date类型转换为底层数值输出,所以出现了19358这类数字。你可以直接验证:as.numeric(as.Date("2023-01-01")) # 输出结果就是19358 - 而遍历索引(比如
for(i in 1:length(dates)) {print(i)})输出的是索引序号1、2…,和日期本身的存储值没有关系。
正确输出日期格式的方法:
如果想在循环里保留日期字符串格式,直接用print时指定格式即可:
for(mydate in dates) { print(mydate, format = "%Y-%m-%d") }
内容的提问来源于stack exchange,提问作者SqueakyBeak
相关产品推荐
相关产品推荐

