我正在尝试使用for循环创建一个日期向量(格式化为字符字符串,而不是日期)。我已经查阅了一些其他的SO问题,例如(如何使用循环创建字符字符串向量?),但它们并没有帮助我。我已经创建了以下for循环:
start_dates <- c("1993-12-01")
j <- 1
start_dates <- for(i in 1994:as.numeric(format(Sys.Date(), "%Y"))){
date <- sprintf("%s-01-01", i)
j <- j + 1
start_dates[j] <- date
}
然而,它返回一个NULL(空)
向量 start_dates
。当我手动增加i
索引时它就能工作了,例如:
> years <- 1994:as.numeric(format(Sys.Date(), "%Y"))
> start_dates <- c("1993-12-01")
> j <- 1
> i <- years[1]
> date <- sprintf("%s-01-01", i)
> j <- j + 1
> start_dates[j] <- date
> start_dates
[1] "1993-12-01" "1994-01-01"
> i <- years[2]
> date <- sprintf("%s-01-01", i)
> j <- j + 1
> start_dates[j] <- date
> start_dates
[1] "1993-12-01" "1994-01-01" "1995-01-01"
这一定与我的for()
语句的构造有关,但我想不出来。我相信它非常简单。提前感谢。
for()
调用的结果分配给start_dates
,这只会在循环运行时抹掉你所做的一切。 - Gavin Simpson