One can always use the often-overlooked sweep():

 > a <- matrix(2:7,2,3)
 > b <- matrix(1:2,2,1)
 > sweep(a,1,b)
      [,1] [,2] [,3]
[1,]    1    3    5
[2,]    1    3    5
 >

best


rksh



On 6 Mar 2006, at 23:10, Michael wrote:

> Hi all,
>
> I want to substract vector B from A's each column... how can R do that
> smartly without a loop?
>
>> A=matrix(c(2:7), 2, 3)
>> A
>      [,1] [,2] [,3]
> [1,]    2    4    6
> [2,]    3    5    7
>> B=matrix(c(1, 2), 2, 1)
>> B
>      [,1]
> [1,]    1
> [2,]    2
>> A-B
> Error in A - B : non-conformable arrays
>
>       [[alternative HTML version deleted]]
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting- 
> guide.html

--
Robin Hankin
Uncertainty Analyst
National Oceanography Centre, Southampton
European Way, Southampton SO14 3ZH, UK
  tel  023-8059-7743

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to