循环遍历R中的日期列表

时间:2018-04-20 20:46:03

标签: r date representation

以下是我的例子:

test_list <- c(as.Date('2017-03-08','2017-03-08' ))

    for(el in test_list){
      print(el)
    }

它生成: 17641

这是日期表示。我很好奇R为什么会这样。

2 个答案:

答案 0 :(得分:2)

你想要什么回来? 一次&#39; 2017-03-08&#39;或者是下面代码中的两倍?

test_list <- as.Date(c('2017-03-08','2017-03-08'))

for(el in test_list){
   print(as.Date(el, origin = "1970-01-01"))
}

答案 1 :(得分:1)

Pierre Lapointe是正确的,在as.Date中调用多个参数是你问题的一部分。

17641号码与how R stores dates有关。致电test_list会产生"2018-04-20",我猜这意味着它会添加这两个日期。

R中的原始日期为1970-01-01。如果您向其添加17641,则会获得2018-04-20。所以R返回与你的日期相对应的整数,可以通过调用class(el)来验证,这是有道理的,因为在循环中你的test_list中的元素是它们的正常性(条例?)

以下对我来说很好。我不确定为什么,但如果它没有打破,就不要修理它!

for (el in 1:length(test_list)){
  print(test_list[el])
}