因此,我有两个data.frame,一个称为yearlywindspeeds
,应该具有一年中每个小时(8760小时)的风速值。第二个data.frame包含每月(0-23)每个月的每小时平均风速,称为cyprusmonthlywindspeeds
。
我希望能够使用基于现在的时间和月份的值来填充yearlywindspeeds
中的每个[i,j]单元格。 yearlywindspeeds
的第一列是月份的索引(Months
)。这是我的代码,我猜它可以正常工作:
for(i in 1:nrow(yearlywindspeeds)) {
if (yearlywindspeeds[i, "Months"] == 1) {
yearlywindspeeds[i, ] = cyprusmonthlywindspeeds[1, ]
}
}
很明显,我可以继续每月一个月地进行此操作,以替换行中的行,但是我只是想可能会有一种更优雅/更具指导性的方式来执行此操作,以便在我所在的每个单元格中查找按行/列,然后基于一对索引i,j从月平均值中提取值。
我将不胜感激。
要在此处回复评论,这些是data.frame的列名
> head(yearlywindspeeds)
Month 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
1 1 2 2 2 2 2 2 2 2 2 2 3 5 5 5.2 5.2 5.2 5.2 4.2 3.5 3 2.5 2.4 2.2 2
2 1 2 2 2 2 2 2 2 2 2 2 3 5 5 5.2 5.2 5.2 5.2 4.2 3.5 3 2.5 2.4 2.2 2
3 1 2 2 2 2 2 2 2 2 2 2 3 5 5 5.2 5.2 5.2 5.2 4.2 3.5 3 2.5 2.4 2.2 2
4 1 2 2 2 2 2 2 2 2 2 2 3 5 5 5.2 5.2 5.2 5.2 4.2 3.5 3 2.5 2.4 2.2 2
5 1 2 2 2 2 2 2 2 2 2 2 3 5 5 5.2 5.2 5.2 5.2 4.2 3.5 3 2.5 2.4 2.2 2
6 1 2 2 2 2 2 2 2 2 2 2 3 5 5 5.2 5.2 5.2 5.2 4.2 3.5 3 2.5 2.4 2.2 2
> head(cyprusmonthlywindspeeds)
Month X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22
1 1 2 2.0 2.0 2 2 2.0 2.0 2.0 2 2.0 3.0 5 5.0 5.2 5.2 5.2 5.2 4.2 3.5 3.0 2.5 2.4 2.2
2 2 2 2.0 2.0 2 2 2.0 2.0 2.0 2 2.0 3.0 4 4.0 4.2 4.2 4.2 5.2 4.2 3.5 3.0 2.5 2.4 2.2
3 3 2 2.0 2.0 2 2 2.0 2.0 2.0 2 2.0 3.0 5 5.0 6.2 6.2 6.2 6.2 5.2 3.5 3.0 2.5 2.4 2.2
4 4 2 2.0 2.0 2 2 2.0 2.0 2.0 2 2.0 3.0 5 5.0 6.2 6.2 6.2 6.2 5.2 3.5 3.0 2.5 2.4 2.2
5 5 3 2.5 2.2 2 2 1.5 1.5 1.8 2 2.5 2.8 3 3.2 3.5 4.2 5.5 5.5 5.5 5.5 5.5 4.5 4.0 4.5
6 6 3 2.5 2.2 2 2 1.5 1.5 1.8 2 2.5 2.8 3 3.2 3.5 4.2 5.5 5.5 5.5 5.5 5.5 4.5 4.0 4.5
X23
1 2
2 2
3 2
4 2
5 3
6 3
基本上,对于一天中的每个24小时,我都有一个基于月份的风速值。我想定义一年中每个小时的风速值。我上面的代码实际上起作用了,但是,正如我发现的那样,只有两个数据帧的索引“ Month”都在同一列中时;显然,小时数也必须按相同的顺序安排-我继续进行了整整12个月,但我只是认为必须有更好的方法来做到这一点。
当前行仅获取风速值,并将其复制所需的次数,这似乎很笨拙。必须有一个更好的方法来做到这一点。