1

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

    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 

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

谢谢您的帮助。

4

2 回答 2

2

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

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

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

于 2012-05-02T12:15:44.253 回答
1

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

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相应函数中参数的值。

于 2012-05-02T13:27:56.513 回答