トップ 履歴 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

aggregate()

*disclaimer
603270

[R]
[R.function]

aggregate()


  • 群ごとにまとめて処理する(例:グループごとに平均を出すなど)
aggregate(x=処理したい列, by=群ごとに分ける基準の列, FUN=処理する関数)
    • 処理する関数の指定FUNは3文字とも大文字
    • 分ける基準の列はリスト形式でないといけない
by=list(データフレーム$列見出し)

 

以下のデータから、M.ADJについて、Criterionのスコアごとに平均を出す。

> head(errdat6)
  Criterion     M.ADJ     M.ADV M.CONJ M.CONTR     M.DET   M.NOUN M.NOUN.POSS    M.PART   M.PREP    M.PRON  M.PUNCT   M.VERB M.VERB.FORM
1         4 0.0000000 0.9375000      0       0 0.9375000 0.000000           0 0.0000000 2.812500 0.0000000 1.875000 0.000000    0.000000
2         4 0.8356546 0.8356546      0       0 6.6852368 0.000000           0 0.8356546 2.506964 0.0000000 3.342618 0.000000    0.000000
3         3 0.0000000 2.9850746      0       0 1.4925373 0.000000           0 0.0000000 1.492537 0.0000000 0.000000 0.000000    2.985075
4         4 1.1538462 1.1538462      0       0 1.1538462 1.153846           0 0.0000000 0.000000 0.0000000 2.307692 1.153846    0.000000
5         4 0.7142857 0.0000000      0       0 0.7142857 0.000000           0 0.0000000 1.428571 0.7142857 5.000000 0.000000    0.000000
6         3 0.0000000 2.2988506      0       0 1.1494253 0.000000           0 0.0000000 2.298851 0.0000000 0.000000 0.000000    0.000000

最初の M.ADJ についてだけ

> aggregate(x=errdat6[c("M.ADJ")], by=list(errdat6$Criterion), FUN=mean)
  Group.1     M.ADJ
1       1 0.0000000
2       2 0.4565096
3       3 0.2316389
4       4 0.2700783
5       5 0.2020805

2列目から52列目まである51の指標のすべて、Criterionのスコア別に平均を出す

> aggregate(x=errdat6[ , 2:52], by=list(errdat6$Criterion), FUN=mean)
  Group.1     M.ADJ     M.ADV    M.CONJ    M.CONTR     M.DET    M.NOUN M.NOUN.POSS     M.PART   M.PREP    M.PRON  M.PUNCT    M.VERB
1       1 0.0000000 0.0000000 0.0000000 0.00000000 11.025641 1.2820513  0.00000000 0.00000000 0.000000 0.0000000 0.000000 1.2820513
2       2 0.4565096 0.4915131 0.3570263 0.00000000  5.794283 1.6133348  0.00000000 0.09276438 1.530354 0.2553435 2.512071 0.7660263
3       3 0.2316389 0.7514149 0.2514437 0.02870640  4.819499 0.5645891  0.01502111 0.05763293 1.628051 0.4674508 1.882121 0.6504122
4       4 0.2700783 0.7583471 0.1670944 0.02636971  4.127600 0.4265702  0.05806778 0.04239209 1.245962 0.2130185 1.960058 0.6319370
5       5 0.2020805 0.5645903 0.1937006 0.01680108  2.684475 0.4662911  0.03024293 0.00000000 1.152636 0.3120752 1.750767 0.5311594
(以下略)