如何在特定时间的值中填充此data.frame?

时间:2019-05-21 19:08:44

标签: r dataframe indexing

因此,我有两个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个月,但我只是认为必须有更好的方法来做到这一点。

当前行仅获取风速值,并将其复制所需的次数,这似乎很笨拙。必须有一个更好的方法来做到这一点。

0 个答案:

没有答案