0

df次のようなcsv データ フレームをインポートしたとします。

        User    Lesson    Score
         A       1.1       6
         A       1.2       8
         A       3.1       9
         B       1.1       7
         B       3.6       9
         C       5.3       8
         C       6.3       9

ユーザーごとにすべてのスコアを合計し、これらの「合計」スコアをそれぞれ 5 で割ります。次のようなデータ フレームが得られます。

        User        Score
         A           4.6
         B           3.2
         C           3.4

どうすればそれを行うことができますか?

4

3 に答える 3

3

使用できますaggregate

> aggregate(Score/5 ~ User, df, sum)
  User Score
1    A   4.6
2    B   3.2
3    C   3.4
于 2013-07-03T14:14:42.203 に答える
2

これを使用できるプレーンなR:

aggregate(df$Score, by=list(User=df$User), function(x)sum(x)/5)
于 2013-07-03T15:25:10.920 に答える
0

@Justin からのコメントごとに次を試してください。

ddply(Users, .(User), summarise, sum(Score)/5) # I named your df "Users"
# User ..1
# 1    A 4.6
# 2    B 3.2
# 3    C 3.4
于 2013-07-03T14:53:31.960 に答える