【发布时间】:2016-03-14 17:17:35
【问题描述】:
我想创建一个数据框,其中包含每个不同变量的 1 年 1 小时持续时间读数,例如
Date Area Application Type Reading
2015-01-01 00:00:00 Livingroom Heating Electricity 0
.
.
2015-12-30 00:00:00 Livingroom Heating Electricity 0
2015-01-01 00:00:00 Livingroom Heating Gas 3
.
.
2015-12-30 00:00:00 Livingroom Heating Gas 2
2015-01-01 00:00:00 Livingroom Lighting Electricity 1
.
.
2015-12-30 00:00:00 Livingroom Lighting Electricity 2
2015-01-01 00:00:00 Livingroom Lighting Gas 3
.
.
2015-12-30 00:00:00 Livingroom Lighting Gas 2
并且该文件将每年扩展为三个区域(客厅、卧室、走廊)、三个应用(暖气、照明、电器)和两个类型(电和燃气)。此外,供暖时,电为 0,照明时,燃气为 0。
我的问题是如何一次性完成(使用一些 for 循环或任何其他函数)
我已经设法用这个脚本创建了这个数据文件:
dates<-seq(
from=as.POSIXct("2015-1-1 0","%Y-%m-%d %H", tz="UTC"),
to=as.POSIXct("2015-12-31 23", "%Y-%m-%d %H", tz="UTC"),
by="hour"
)
df11 <- data.frame(matrix(NA, nrow = length(dates), ncol = 5))
# Define names of cols and add column
names(df11) <- c("Date", "Area", "Application", "Type", "Reading")
df11$Date <- dates
df11$Area<-"Livingroom"
df11$Application<-"Heating"
df11$Type<-"Electricity"
df11$Reading<-0
这就是我如何为不同的变量创建 18 个不同的文件,然后在最后将它们绑定在一起。
newdataset<-rbind(df11,df12,df13,df14,df15,df16,df21,df22,df23,df24,df25,df26,df31,df32,df33,df34,df35,df36)
我知道这是一种非常懒惰和肮脏的脚本。我真的很想知道如何使用循环或其他方法很好地做到这一点。
任何建议将不胜感激。
【问题讨论】:
-
所以你想要三个因素的所有组合,对吧?您能否详细说明您希望如何定义
Reading? -
David H 读数将随机创建,我使用函数
sample(1:4, 8760, replace=TRUE)正如我所说的加热,电力将是 0,照明气体将是 0 其余所有数据将由sample生成功能。