我想使用pmax
来计算矩阵A
的行方式最大值:
A = matrix(sample(1:20),10,2)
pmax(A[,1],A[,2])
这很好用。但问题是我不知道A的大小,因此对pmax
的调用应该能够按列拆分矩阵并将每列作为参数提供。怎么做?例如,我可能在下一个例子中
A = matrix(sample(1:20),5,4)
但我不想每次都要手工重写
pmax(A[,1],A[,2],A[,3],A[,4])
事实上,我不能,因为A
的大小在程序开始之前是未知的。
答案 0 :(得分:7)
您可以使用do.call
:
do.call(pmax, as.data.frame(A))
答案 1 :(得分:2)
只需使用apply
代替max
......
apply( A , 1 , max )
# [1] 6 11 20 18 17
pmax(A[,1],A[,2],A[,3],A[,4])
# [1] 6 11 20 18 17