将日期添加到由 Posixct 函数生成的空数据框中

To add dates to empty dataframe that are generated by Posixct function

我用这个脚本创建了一系列日期:

dates<-seq(
  from=as.POSIXct("2015-1-1 0","%Y-%m-%d %H", tz="UTC"),
  to=as.POSIXct("2015-12-31 24", "%Y-%m-%d %H", tz="UTC"),
  by="hour"
)

现在我想将结果存储到空数据框的第一列:

df<-data.frame(Date=as.POSIXct(character()),Area=character(), Application=character(),  Type= character(),
               Reading=double())

使用此代码

df$Date<-dates

但它给我错误:

Error in `$<-.data.frame`(`*tmp*`, "Date", value = c(1420070400, 1420074000,  : 
  replacement has 8761 rows, data has 0

谁能帮我解决这个问题?

A data.frame 需要等长的列,不能有一列包含 8761 个观察值,其余的为 0。解决方法是使用正确的数据维度初始化 data.frame,填充通过 NA;然后分配列。

# Initialize df
df <- data.frame(matrix(NA, nrow = length(dates), ncol = 5)) 
# Define names of cols and add column
names(df) <- c("Date", "Area", "Application", "Type", "Reading")
df$Date <- dates