为什么我在循环日期时出错?

Why i am getting error while I am looping dates?

我创建了一个函数,可以让您指定日期

 get_specified_weekday_dates<- function(startdate, enddate= Sys.Date()-1, day_want="Fri"){
  seq_date= data.frame(Price_Date=seq(as.Date(startdate),as.Date(enddate), by=1))
  seq_date$wkdy= wday(seq_date$Price_Date, label = T)
  data.frame(Price_Date=filter(seq_date,wkdy==day_want)[1])
 }
 CalenderDates=get_specified_weekday_dates("2010-01-01")

但是现在当我想遍历这些日期时出现错误

for (i in Weekly_Close_Price$PRICE_DATE){
  print(i)
  print(as.Date(i))
}

输出

[1] 14610
 Error in as.Date.numeric(i) : 'origin' must be supplied

如何使用 Only for 循环遍历日期

这里有两种方式:

  1. 在循环中将日期从数字更改为日期。
for (i in Weekly_Close_Price$PRICE_DATE){
  print(as.Date(i, origin = '1970-01-01'))
}
  1. 遍历索引。
for (i in seq_along(Weekly_Close_Price$PRICE_DATE)) {
  print(Weekly_Close_Price$PRICE_DATE[i])
}

您需要指定时间戳的相对日期(可能是 01.01.1970)

尝试

for (i in Weekly_Close_Price$PRICE_DATE){
  print(i)
  print(as.Date(i, origin = "1970-01-01"))
}

(并检查日期是否有意义!)

我认为这可行

for (i in as.character(Weekly_Close_Price$PRICE_DATE)){
  print(as.Date(i))   
 }