Column-by-column division
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 at 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.