5

私は R を学んでおり、これに対する答えを高低で検索したことを約束します。とてもシンプルですが、なぜか一生理解できません!

1 つの数値ベクトルと 2 つの要素を含むデータフレームがあります。

team.weight <- c(150,160,120,100) # player's weight
team.jersey <- factor(c("blue", "green", "blue", "blue")) # player's jersey color
team.sex <- factor(c("male", "female", "female", "male")) # player's sex
team <- data.frame(team.jersey, team.sex, team.weight)

2 つの要素テーブルのレベルの組み合わせごとに、すべてのプレーヤーの平均体重、つまり mean(team.weight) を示すテーブル (名前は忘れました) を表示したいと考えています。

私はこれを手動で行うことができますが、もっと良い方法が必要です!

mean(team.weight[c(team.jersey[1],team.sex[1])])
mean(team.weight[c(team.jersey[1],team.sex[2])])
mean(team.weight[c(team.jersey[1],team.sex[3])])
mean(team.weight[c(team.jersey[1],team.sex[4])])

mean(team.weight[c(team.jersey[2],team.sex[1])])
mean(team.weight[c(team.jersey[2],team.sex[2])])
mean(team.weight[c(team.jersey[2],team.sex[3])])
mean(team.weight[c(team.jersey[2],team.sex[4])])

mean(team.weight[c(team.jersey[3],team.sex[1])])
mean(team.weight[c(team.jersey[3],team.sex[2])])
mean(team.weight[c(team.jersey[3],team.sex[3])])
mean(team.weight[c(team.jersey[3],team.sex[4])])

mean(team.weight[c(team.jersey[4],team.sex[1])])
mean(team.weight[c(team.jersey[4],team.sex[2])])
mean(team.weight[c(team.jersey[4],team.sex[3])])
mean(team.weight[c(team.jersey[4],team.sex[4])])

どんな助けでも大歓迎です。答えがばかげていることは知っていますが、それが何であるか理解できません。

4

2 に答える 2

3
tapply(team.weight, list(team$team.jersey, team$team.sex), mean)
#       female male
# blue     120  125
# green    160   NA
于 2013-08-25T14:26:21.077 に答える
2

次にplyr例を示します。

> library(plyr)
> ddply(team,.(team.jersey,team.sex),summarize,avgWeight=mean(team.weight))
  team.jersey team.sex avgWeight
1        blue   female       120
2        blue     male       125
3       green   female       160
于 2013-08-25T14:23:39.580 に答える