2016-10-17 4 views
0

値:R:データフレーム合計する行をループすると、私は次のようなデータフレームを持って

team playername points 
team1 player1  80 
team1 player2  40 
... 
team2 player1  98 
... 
team20 player1 40 

それは3列、チーム名、選手名、およびプレイヤーが獲得した合計ポイントを持っています。私がしたいことは、データフレームをループし、チームごとに合計を計算することです。次の例では、team1の合計ポイントは120になります。私はいくつかの出力を取得しようとする以前のいくつかのテストコードを書いた:

curTeam = "" 
count = 0 
for (i in df) { 
    if (curTeam == i$Team) { 
     count = count + i$points 
    } else { 
     print (count) 
     curTeam = i$Team 
     count = i$points 
    } 
} 

私は次のエラーを取得しています:

$ operator is invalid for atomic vectors

は、私が何をしようとしている行うには良い方法はありますか?

ありがとうございました。

+1

'xtabs(points〜team、df)'はそれを行うべきです。 '?aggregate'も参照してください。 –

+0

残念ながら、私はRStudioでのプログラミングの贅沢さがないので、ヘルプ機能や作成されたオブジェクトを見る機能にアクセスすることはできません。 xtabsはリストを返しますか?この情報をbar charに投げることは可能でしょうか? –

+1

結果が表示されず、ヘルプファイルがありません。どのプラットフォームを使用していますか? –

答えて

0

これはいかがですか?

df <- read.table(text = "team playername points 
team1 player1  80 
team1 player2  40 
team2 player1  98 
team20 player1 40", header = TRUE) 

library(tidyr) 
library(dplyr) 
df %>% group_by(team) %>% summarise(sum(points)) 
+0

最後の声明で何をやっているのか少し説明できますか? %>% –

+1

@AlexCauthen 'df%>%group_by(team)'は、 'group_by(df、team)'と同じです。 – parksw3

関連する問題