【问题标题】:Need help pairing data需要帮助配对数据
【发布时间】:2012-05-02 12:00:32
【问题描述】:

我正在寻找我确定的快速答案。我正在使用如下所示的数据集:

    Week      Game.ID           VTm VPts HTm HPts Differential HomeWin 
    1  NFL_20050908_OAK@NE      OAK   20 NE  30           10   TRUE 
    1 NFL_20050911_ARI@NYG      ARI   19 NYG 42           23   TRUE 
    1 NFL_20050911_CHI@WAS      CHI    7 WAS 9            2    TRUE 
    1 NFL_20050911_CIN@CLE      CIN   27 CLE 13          -14   FALSE 
    1  NFL_20050911_DAL@SD      DAL   28 SD  24           -4   FALSE 
    1 NFL_20050911_DEN@MIA      DEN   10 MIA 34           24   TRUE 

NFL 数据。我想想出一种方法将每个 HTm 与其差分配对,并将这些值存储在另一个表中。我知道这很容易做到,但我想出的所有方法都涉及通过搜索 [i,5]=="NE", [i,5]=="NYG" 的 for 循环单独执行每个团队。我想知道是否有一种方法可以系统地为所有 32 支球队做到这一点。然后,我将使用相同的方法将相同团队代码(“NYG”或“NE”)的 VTM 与 VPT 和 VDifferential 配对。

感谢您的帮助。

【问题讨论】:

    标签: r


    【解决方案1】:

    我不确定我是否正确理解了您的问题(您需要数据库中的 select 之类的功能?)但是:

    cbind(matr[,x], matr[,y])
    

    选择列 x 和 y 并创建一个新矩阵

    【讨论】:

    • 并且稍微费点力 :-) 您也可以拖动列名。
    • 感谢您的帮助。不知道为什么 cbind 没有想到。我希望为所有 32 个团队创建单独的矩阵,以便我可以对分数进行独立分析。单独完成它们并不太难,但我想知道是否有某种循环我没有想到我可以一口气完成所有 32 个。如果有意义的话,可以根据谁是主队对所有比赛进行分组。
    • 补充:如果有多行的 HTm 值相同,并且您想过滤它们,您可以使用 subset(data, condition) 在此之后您可以使用 sum/进一步处理的平均值
    【解决方案2】:

    听起来您想根据分组变量对数据框执行操作。为此,有很多功能,其中有tapply()。例如,如果您的数据位于名为 nflDF 的 data.frame 对象中,您可以获得每个主队 HTm 的最大 Differential

    tapply(nflDF$Differential, nflDF$HTm, FUN = max)
    

    哪个会返回(带有您的示例数据)

    CLE MIA  NE NYG  SD WAS 
    -14  24  10  23  -4   2
    

    或者,您可以使用by

    by(nflDF, nflDF$HTm, FUN = function(x) max(x$Differential))
    
    HTm: CLE
    [1] -14
    ------------------------------------------------------------ 
    HTm: MIA
    [1] 24
    ------------------------------------------------------------ 
    HTm: NE
    [1] 10
    ------------------------------------------------------------ 
    HTm: NYG
    [1] 23
    ------------------------------------------------------------ 
    HTm: SD
    [1] -4
    ------------------------------------------------------------ 
    HTm: WAS
    [1] 2
    

    要执行更复杂的操作,请更改提供给相应函数中FUN 参数的值。

    【讨论】:

      猜你喜欢
      • 2015-04-26
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      • 2021-10-18
      相关资源
      最近更新 更多