0

我正在使用两个不同的数据集,我想将数据从一个移动到另一个。我是这样想的:一个包含结果,与正确的因子(HTm)配对,我想将它们分散到另一个框架上。这是第一帧:

    head(five)
    Week      Game.ID      VTm VPts HTm HPts HDifferential VDifferential
  1 1  NFL_20050908_OAK@NE OAK   20  NE   30      10           -10
  2 1 NFL_20050911_ARI@NYG ARI   19 NYG   42            23           -23
  3 1 NFL_20050911_CHI@WAS CHI    7 WAS    9             2            -2
  4 1 NFL_20050911_CIN@CLE CIN   27 CLE   13           -14            14
  5 1  NFL_20050911_DAL@SD DAL   28  SD   24            -4             4
  6 1 NFL_20050911_DEN@MIA DEN   10 MIA   34            24           -24
    VTm.f HTm.f average
  1 OAK    NE 19.4375
  2 ARI   NYG 19.4375
  3 CHI   WAS 19.4375
  4 CIN   CLE 19.4375
  5 DAL    SD 19.4375
  6 DEN   MIA 19.4375

    > tail(five)
        Week              Game.ID VTm VPts HTm HPts HDifferential VDiff
    262   19 NFL_20060114_WAS@SEA WAS   10 SEA   20            10    -10
    263   19 NFL_20060115_CAR@CHI CAR   29 CHI   21            -8      8
    264   19 NFL_20060115_PIT@IND PIT   21 IND   18            -3      3
    265   20 NFL_20060122_CAR@SEA CAR   14 SEA   34            20    -20
    266   20 NFL_20060122_PIT@DEN PIT   34 DEN   17           -17     17
    267   21 NFL_20060205_SEA@PIT SEA   10 PIT   21            11    -11
            VTm.f HTm.f average
      262   WAS   SEA       0
      263   CAR   CHI       0
      264   PIT   IND       0
      265   CAR   SEA       0
      266   PIT   DEN       0
      267   SEA   PIT       0

这是另一个(第一帧的聚合方法)。

    head(fiveINFO)
    HTm     HPts     VPts  average
   1 ARI 19.87500 19.00000 19.43750
   2 ATL 24.75000 19.12500 21.93750
   3 BAL 19.37500 13.75000 16.56250
   4 BUF 16.50000 17.37500 16.93750
   5 CAR 25.12500 23.27273 24.19886
   6 CHI 18.77778 14.00000 16.38889

    tail(fiveINFO)
    VTm  HPts   VPts average
 27 SEA 21.00 25.000 23.0000
 28 SF 30.75 12.625 21.6875
 29 STL 28.00 22.000 25.0000
 30 TB 15.75 15.375 15.5625
 31 TEN 28.00 14.750 21.3750
 32 WAS 20.60 18.800 19.7000

作为参考,此数据正在查看 NFL 分数。我想在第 2 帧取 FiveINFO 中的平均值,然后将它们移动到第 1 帧中的相应团队。5 是 266 行,而 FiveINFO 是 32 行 - FiveINFO 包含每个 HTm 仅一次,而 5 包含每个 8-10 次,具体取决于每支球队参加的主场比赛的数量。我发现了几个看起来相似的答案,但数据集要小得多。我不想将两者合并;我希望第二帧的平均数据分布在第一帧中的适当 HTm 值中。

我想我需要为此使用某种 for 循环,但我所做的一切都是引人注目的。帮助?

4

1 回答 1

1

total<-merge(five, fiveINFO, by="HTm")

其中 total 是具有基于 htm 列的五和五信息合并列的数据框。五和五INFO 中不匹配的htm 的值将不被填充。但是,如果你想用 NA 填充,你可以明确地这样做(在合并函数中使用这个选项:all=TRUE、all.x 或 all.y = TRUE)。

您还可以删除合并后不需要的额外列。

total=subset(total,select= -c(HPts,VPts)) #用于从合并的数据框中删除列 HPts、VPts

于 2012-05-11T02:36:26.667 回答