[R] Column-by-column division

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Wed Mar 3 12:12:57 CET 2021


Hello,

Maybe define an infix operator?


`%!%` <- function(x, y) {
   stopifnot(ncol(x) == length(y))
   t(t(x)/y)
}

x <- matrix(1:20, ncol = 2)
s <- 1:2

x %!% s
x %!% 1:4


Hope this helps,

Rui Barradas

Às 11:00 de 03/03/21, Steven Yen escreveu:
> I have a 10 x 2 matrix x. Like to divide the first column by s[1] and 
> second column by s[2]. The following lines work but are clumsy. Any 
> idea? Thanks.
> 
>  > x
>        [,1] [,2]
>   [1,]    1   11
>   [2,]    2   12
>   [3,]    3   13
>   [4,]    4   14
>   [5,]    5   15
>   [6,]    6   16
>   [7,]    7   17
>   [8,]    8   18
>   [9,]    9   19
> [10,]   10   20
>  > s
> [1] 1 2
>  > t(t(x)/s)
>        [,1] [,2]
>   [1,]    1  5.5
>   [2,]    2  6.0
>   [3,]    3  6.5
>   [4,]    4  7.0
>   [5,]    5  7.5
>   [6,]    6  8.0
>   [7,]    7  8.5
>   [8,]    8  9.0
>   [9,]    9  9.5
> [10,]   10 10.0
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list