Skip to content
Back to formatted view

Raw Message

Message-ID: <971536df0803220759q71ce8017t43ba0aa7baab356e@mail.gmail.com>
Date: 2008-03-22T14:59:58Z
From: Gabor Grothendieck
Subject: More elegant multiplication or division of a data frame with a vector
In-Reply-To: <15692f300803220721v1d745ba9r36c037ece50579c@mail.gmail.com>

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.
>