• R语言
  • 关于data.frame的一个问题

假如有这样的一个矩阵,或是data.frame

V1 V2 V3 V4 V5

1   2   3   4   1

2   4   1   8   1

4   5   3   2   2

3   5   1   7   3

5   9   2   4   2

1   3   6   9   2

10 4   15   7   3

...........................

现在我想求出:

V5=1的所有行中,V1,V2,V3,V4的最值

V5=2的所有行中,V1,V2,V3,V4的最值

V5=3的所有行中,V1,V2,V3,V4的最值

...

即按照V5的不同取值说构成的一个矩阵中列的一些性质(如最值)

比如上面的矩阵中,V5=1的那些行中,V1的最大值就是[2,1]=2,V3的最大值就是[1,3]=3...



有没有除了循环的其他办法?apply是不是可以用啊,比如对V5=1的那些,对每列取个最值,但是我不知道怎么限制在V5=1。



不知道我说清楚没...
by(dat[, 1:4], dat[, 5], function(x) sapply(x, max))
[quote]引用第1楼abel2008-10-28 19:32发表的“”:

by(dat[, 1:4], dat[, 5], function(x) sapply(x, max))[/quote]



a million thanks!~
aggregate(x[,1:4],list(x[,5]), max)
by(dat[, 1:4], dat[, 5], function(x) sapply(x, max))中的

function(x) sapply(x, max) 是什么含义呀?不是很理解。。。