循环通过R中的日期向量

时间:2018-05-03 15:20:41

标签: r loops date vector

这是我的例子。

my_df <- data.frame(col_1 = c(1,2), 
col_2 = c(as.Date('2018-11-11'), as.Date('2016-01-01')))
dates_list <- my_df$col_2
for(el in dates_list){
  print(el)
}

它生成:

17846
16801

如何输出日期?我可以用显式索引来做,但希望有更简单的解决方案

3 个答案:

答案 0 :(得分:5)

1)使用as.list

for(el in as.list(dates_list)) {
  print(el)
}

,并提供:

[1] "2018-11-11"
[1] "2016-01-01"

2)或者不太好,但可以迭代索引:

for(i in seq_along(dates_list)) {
  print(dates_list[i])
}

答案 1 :(得分:2)

您也可以使用lubridate中的as_date函数。

library(lubridate)

for(i in dates_list){
   print(as_date(i))
}

[1] "2018-11-11"
[1] "2016-01-01"

答案 2 :(得分:1)

问题的原因可能是Application.AddCustomList ListArray:=fcValues 将列强制转换为日期向量:

dates_list <- my_df$col_2

所以另一个解决方案是解决这个问题,如下所示:

dates_list <- my_df$col_2
class(dates_list)
> [1] "Date"