2012-05-02 16 views
1

私は確かに迅速な答えです。私は次のようなデータセットを扱っています:データのペアリングを助ける必要があります

Week  Game.ID   VTm VPts HTm HPts Differential HomeWin 
    1 [email protected]  OAK 20 NE 30   10 TRUE 
    1 [email protected]  ARI 19 NYG 42   23 TRUE 
    1 [email protected]  CHI 7 WAS 9   2 TRUE 
    1 [email protected]  CIN 27 CLE 13   -14 FALSE 
    1 [email protected]  DAL 28 SD 24   -4 FALSE 
    1 [email protected]  DEN 10 MIA 34   24 TRUE 

NFLデータ。私は、それぞれのHTmをDifferentialとペアにし、これらの値を別のテーブルに格納する方法を考え出したいと思います。私はそれが簡単だと知っているが、私が考えているすべての方法は、[i、5] == "NE"、[i、5] == "NYG"を検索するforループを介して各チームを個別に行うことを伴う。 32チーム全員に体系的にこれを行う方法があるのだろうかと思っています。次に、同じチームコード(「NYG」または「NE」)のVTMとVPTおよびVDifferentialを同じ方法で組み合わせます。

ありがとうございました。私が正しくあなたの質問を理解

答えて

2

イムわからない場合は(?あなたは、データベース内の選択などの機能を必要とする)が、:

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

が列xとyを選択し、

+0

もう少し努力して:-)列名をドラッグすることもできます。 –

+0

助けてくれてありがとう。なぜcbindが気にしなかったのか分かりません。 私はスコアの独立した分析を行うことができるように、すべての32のチームのために別々の行列を作成していますよ。個別にするのは難しいことではありませんが、何かループがあるかどうか疑問に思っています。私は32のすべてを1つにすることができると思っていません。それが理にかなっている場合、ホームチームの誰に基づいてグループにすべてのゲームを並べ替えるか。 –

+0

追加:HTMに同じ値を持つ複数の行があり、それらをフィルタリングする場合は、使用することができます**サブセット(データ、条件)**あなたは合計を使用することができ、この後には/更なる処理のために意味します – grishnagkh

1

はですね、新しい行列を作成しますグループ化変数に基づいてデータフレームの操作を実行したい場合などです。そのためには、多くの機能がありますが、そのうちの1つはtapply()です。あなたのデータはnflDFという名前data.frameのオブジェクトである場合たとえば、あなたは(あなたのサンプルデータで)返すことになる

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

することにより、各ホームチーム HTmの最大 Differentialを得ることができ

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 

は、より複雑な操作を実行するには、値のsuを変更します適切な関数のFUN引数に渡されます。

関連する問題