如何避免R在for循环中将日期转换为数字?这与此问题有关,该问题显示了 mapply禁用 mapply 自动将日期转换为数字的相同行为
date <- c('2008-02-20','2009-10-05')
date <- as.Date(date, format = '%Y-%m-%d')
date
[1] "2008-02-20" "2009-10-05"
for (i in date) print(i)
[1] 13929
[1] 14522
Run Code Online (Sandbox Code Playgroud)
我重新打开了这个问题,因为重复循环在日期时间对象上导致数字迭代器询问为什么R 循环将日期和日期时间对象转换为数字,这个问题询问如何避免这种行为。答案是解决问题的关键,与副本中的已接受答案和其他答案不同,它们正确地回答了其他问题。
该for环胁迫的序列向量,除非它是矢量,列表,或一些其他的东西。 date不是向量,也没有日期向量这样的东西。所以你需要as.list保护它免受强制转换为向量:
for (d in as.list(date)) print(d)
Run Code Online (Sandbox Code Playgroud)