1

Rに次のようなデータセットがあります:

SchoolName  Year  Grade  Other_cols_not_of_interest
School1     1998  152
School2     1998  156
School3     1999  158

1998 年から 2011 年までの各年について、利用可能な学校データの十分位数を計算したいと思います。(1 年間で 40 校のデータがある場合と、別の 20 校のデータがある場合があります。)

これは私が見たい出力です:

Decile  Year   Value
D1      1998   100
D2      1998   110
D3      1998   125
[...]
D10     1998   170
D1      1999   105
[...]
4

2 に答える 2

1
schoolDat <- data.frame(
  'SchoolName' = rep(paste('School',1:10), each=10),
  'Year' = rep(1998:2007, 10),
  'Grade' = rpois(100, 100)
  )


tapply(schoolDat$Grade, schoolDat$Year, quantile, probs=0:10/10)
于 2012-04-26T16:18:34.670 に答える
0

plyrこれは、3 列のデータフレームで結果を返すパッケージを使用したバージョンです。

dat <- data.frame('SchoolName' = rep(paste('School', 1:10), each=10),
              'Year' = rep(1998:2007, 10),
              'Grade' = rpois(100, 100))

require(plyr)
d <- ddply(dat, .(Year), summarise, decile_grade=quantile(Grade, 0:10/10), 
       decile_val=0:10/10)

head(d)
>   Year decile_grade decile_val
  1 1998         81.0        0.0
  2 1998         90.0        0.1
  3 1998         93.4        0.2
  4 1998        100.3        0.3
  5 1998        104.8        0.4
  6 1998        106.5        0.5
于 2012-04-26T16:36:34.453 に答える