【发布时间】:2021-09-10 08:19:52
【问题描述】:
我正在尝试将一系列日期传递给数据框:
DF_1 <- as.data.frame(matrix(ncol=2))
days <-seq(as.Date("2016-01-01"), as.Date(Sys.time(),"%Y-%m-%d"), by="days")
for (i in 1:length(days)) {
print(days[i])
DF_1[i,1] <- days[i]
}
打印函数的结果是:
[1] "2021-06-23"
[1] "2021-06-24"
[1] "2021-06-25"
[1] "2021-06-26"
[1] "2021-06-27"
[1] "2021-06-28
" 但是 DF1 中的第 1 列是:
16801
16802
16803
16804
16805
为什么数据帧中日期的顺序会发生变化?
【问题讨论】:
-
您应该避免
for循环。最好将数据传递给 data.frame 构造函数:DF_1 <- data.frame(days = seq(as.Date("2016-01-01"), as.Date(Sys.time(),"%Y-%m-%d"), by="days"))。否则,您必须担心部分更改列数据类型。 -
这篇帖子stackoverflow.com/questions/6434663/… 应该会告诉您发生这种情况的原因以及可能的解决方案。