向r中的字段数据集添加插值模型数据列

向r中的字段数据集添加插值模型数据列,r,for-loop,interpolation,calibration,R,For Loop,Interpolation,Calibration,我试图将我的模型数据与r中的字段数据进行比较。现场数据位于特定深度(1,20,50,75100150…)。模型数据输出不在同一深度,必须进行插值(线性),最好添加到现场数据的新列中 我想在模型数据的每一行上运行一个for循环,并使用approx函数插值数据,以适应字段数据的深度,并将其添加到model_chla列中。我从两个数据集中提取了相同的日期(19个日期),因此只需要对模型深度进行插值 chla_FIELD # some of the field data with the

我试图将我的模型数据与r中的字段数据进行比较。现场数据位于特定深度(1,20,50,75100150…)。模型数据输出不在同一深度,必须进行插值(线性),最好添加到现场数据的新列中

我想在模型数据的每一行上运行一个for循环,并使用approx函数插值数据,以适应字段数据的深度,并将其添加到model_chla列中。我从两个数据集中提取了相同的日期(19个日期),因此只需要对模型深度进行插值

chla_FIELD         # some of the field data with the empty model column
          date depth  chla model_chla
1   2008-02-21     1  0.06         NA
2   2008-02-21    20  0.05         NA
3   2008-02-21    50  0.03         NA
4   2008-02-27     1  0.08         NA
5   2008-02-27    20  0.04         NA
6   2008-02-27    50  0.03         NA
7   2008-02-27    75  0.03         NA
8   2008-02-27   100  0.01         NA
9   2008-03-07     1  0.07         NA
10  2008-03-07    20  0.05         NA
11  2008-03-07    50  0.03         NA
12  2008-03-07    75  0.02         NA
13  2008-03-07   100  0.02         NA
14  2008-03-07   150  0.01         NA


chla_MODEL          # Some of the model data to be interpolated to field data depths and added to column
             dt depth        chla
766  2008-02-21   1.0  0.22385520
767  2008-02-21   7.5  0.21676594
768  2008-02-21  15.0  0.19189246
769  2008-02-21  25.0  0.15524526
770  2008-02-21  40.0  0.14638090
771  2008-02-21  62.5  0.14301939
772  2008-02-21  87.5  0.14094244
773  2008-02-21 112.5  0.13897014
774  2008-02-21 137.5  0.13680272
775  2008-02-21 162.5  0.13430916
776  2008-02-21 187.5  0.13133907
777  2008-02-21 212.5  0.12757768
778  2008-02-21 237.5  0.12237051
779  2008-02-21 262.5  0.11396441
780  2008-02-21 287.5  0.09206185
856  2008-02-27   1.0  0.24240938
857  2008-02-27   7.5  0.23447734
858  2008-02-27  15.0  0.21238998
859  2008-02-27  25.0  0.15545718
860  2008-02-27  40.0  0.14592259
861  2008-02-27  62.5  0.14171122
862  2008-02-27  87.5  0.13900438
863  2008-02-27 112.5  0.13662824
我的开始是这样的,但我不熟悉approx函数并在循环中向列添加数据

chla_approx <- function(FieldDATA, ModelDATA)
  
  for (row in FieldDATA) {
  
  }

chla_近似值以下代码假设
chla_字段中的所有日期都存在于
chla_模型中

如果数据集中的日期已经属于“日期”类,则不需要这两条说明

chla_FIELD$date <- as.Date(chla_FIELD$date)
chla_MODEL$dt <- as.Date(chla_MODEL$dt)
最终清理

rm(sp_field, sp_model)

谢谢你,芮。出于统计目的,如果我向两个数据集添加“源”列:

          date depth  chla source
1   2008-02-21     1  0.06  FIELD
2   2008-02-21    20  0.05  FIELD
3   2008-02-21    50  0.03  FIELD

            dt depth       chla source
766 2008-02-21   1.0 0.22385520  MODEL
767 2008-02-21   7.5 0.21676594  MODEL
768 2008-02-21  15.0 0.19189246  MODEL
769 2008-02-21  25.0 0.15524526  MODEL
770 2008-02-21  40.0 0.14638090  MODEL
771 2008-02-21  62.5 0.14301939  MODEL
在拆分函数之后,如何将数据按系列合并?(仍对模型chla进行插值以匹配场深度)以获得如下结果:

1   2008-02-21     1  0.06  FIELD
2   2008-02-21    20  0.05  FIELD
3   2008-02-21    50  0.03  FIELD
1   2008-02-21     1  0.06  MODEL
2   2008-02-21    20  0.05  MODEL
3   2008-02-21    50  0.03  MODEL
4   2008-02-27     1  0.08  FIELD
5   2008-02-27    20  0.04  FIELD
6   2008-02-27    50  0.03  FIELD
4   2008-02-27     1  0.08  MODEL
5   2008-02-27    20  0.04  MODEL
6   2008-02-27    50  0.03  MODEL

谢谢你,芮。这正是我想要的,也是一个简单的解决方案。现在我得到了一些非常好的校准图niels您可以将它们与
rbind
do.call(rbind,df_list)
组合,其中
df_list
是一个data.frames列表。
1   2008-02-21     1  0.06  FIELD
2   2008-02-21    20  0.05  FIELD
3   2008-02-21    50  0.03  FIELD
1   2008-02-21     1  0.06  MODEL
2   2008-02-21    20  0.05  MODEL
3   2008-02-21    50  0.03  MODEL
4   2008-02-27     1  0.08  FIELD
5   2008-02-27    20  0.04  FIELD
6   2008-02-27    50  0.03  FIELD
4   2008-02-27     1  0.08  MODEL
5   2008-02-27    20  0.04  MODEL
6   2008-02-27    50  0.03  MODEL