【发布时间】:2020-09-09 20:33:12
【问题描述】:
这里有一个带有 for 循环的代码:
for (i in 1:length(mc_1$code))
{cmc1 = mc_1$code[i]
cmc2 = mc_1[mc_1$code == cmc1,]
cmc3 = cmc2[order(cmc2[ ,2], cmc2[ ,3]),]
mc_1[mc_1$code == cmc1,]$region = last(cmc3$region)
}
对于变量“code”中的每个值,mc_1 具有不同的行数。 mc_1 也有年份和月份的列(第 2 列和第 3 列),以及另一列,比如说,区域。即使是相同的“代码”在不同的月份和年份,“区域”也是不同的。
对于每个“代码”,我只想按月和年选择最近的区域(这就是我使用“order”的原因)并将该区域分配给该特定代码的所有行中的所有区域。
我确实有这个 for 循环,它有效。但是对于效率和代码长度问题,如何使用数据表或 dplyr 之类的东西更好地重写它?
【问题讨论】:
-
如果你也能提供一些样本数据就太好了