[R] More elegant multiplication or division of a data frame with a vector

Gabor Grothendieck ggrothendieck at gmail.com
Sat Mar 22 15:59:58 CET 2008


Not sure if these are any better but here are a few alternatives:

rawdata / rep(sens, each = nrow(rawdata))

as.data.frame(mapply("/", rawdata, sens))

as.data.frame(as.matrix(rawdata) %*% diag(1/sens))

On Sat, Mar 22, 2008 at 10:21 AM, Tribo Laboy <tribolaboy at gmail.com> wrote:
> Hello,
>
> I am importing some raw voltage multichannel measurements into an R
> data frame. I need to scale each column with the respective
> sensitivity for that channel. I figured how to do it, but I am curious
> if there isn't a more elegant way.
>
> Now I start with something like this:
>
> rawdata <- data.frame(rbind(c(1,2,3), c(4,5,6)))
> sens <- c(2,4,6)
>
>
> and I do this:
> data <- as.data.frame(t(t(rawdata)/sens))
>
> Any suggestions?
>
> Cheers,
>
> TL
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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