[R] Dividing Two Dataframes

ONKELINX, Thierry Thierry.ONKELINX at inbo.be
Wed May 14 16:03:01 CEST 2008


Dear Bert,

Another option is to replicate SDF2 so the number of rows matches with those of SDF1.

SDF1 <- data.frame(matrix(rnorm(144 * 2), nrow = 144))
SDF2 <- data.frame(matrix(rnorm(12 * 2), nrow = 12))
SDF1 / SDF2 #yields the error

SDF2a <- do.call(rbind, rep(list(SDF2), nrow(SDF1) / nrow(SDF2)))
SDF1 / SDF2a #this works

HTH,

Thierry

----------------------------------------------------------------------------
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature and Forest
Cel biometrie, methodologie en kwaliteitszorg / Section biometrics, methodology and quality assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium 
tel. + 32 54/436 185
Thierry.Onkelinx op inbo.be 
www.inbo.be 

To call in the statistician after the experiment is done may be no more than asking him to perform a post-mortem examination: he may be able to say what the experiment died of.
~ Sir Ronald Aylmer Fisher

The plural of anecdote is not data.
~ Roger Brinner

The combination of some data and an aching desire for an answer does not ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey

-----Oorspronkelijk bericht-----
Van: r-help-bounces op r-project.org [mailto:r-help-bounces op r-project.org] Namens Bert Jacobs
Verzonden: woensdag 14 mei 2008 15:43
Aan: 'Henrique Dallazuanna'
CC: r-help op r-project.org
Onderwerp: Re: [R] Dividing Two Dataframes

Hi Henrique,



I think I understand your formula, but your final result is a 12x160
data.frame, while it should be a 144x160 data.frame



divide rows 1:12 with SDF2 (=12 rows)

divide rows 13:24 with SDF2 (=12 rows)

divide rows 25:36 with SDF2 (=12 rows)

...

divide rows 133:144 with SDF2 (=12 rows)



Is it easy to adapt your formula to get this result?



Thx,

Bert



  _____  

From: Henrique Dallazuanna [mailto:wwwhsd op gmail.com] 
Sent: 14 May 2008 13:34
To: Bert Jacobs
Cc: r-help op r-project.org
Subject: Re: [R] Dividing Two Dataframes



Try this:

DFS <- lapply(split(seq(1, 144, by = 1), rep(1:12, each = 12)),
function(x)SDF1[x,]/SDF2)

On Wed, May 14, 2008 at 5:02 AM, Bert Jacobs <b.jacobs op pandora.be> wrote:

Hi,



I have two dataframes one with 144 rows and 160 columns (SDF1) and one with
12 rows and 160 columns (SDF2).

Now I'm trying to divide rows 1:12 with SDF2, rows 13:24 with SDF2, rows
25:36 with SDF 2, .

In S-Plus the following code works fine:



DFS = SDF1[1:144,1:60] / as.vector(SDF2[1:12,1:160])



but in R when I try to implement the formula I get  the following error:

"/ only defined for equally-sized data frames"



Can someone help me out on this one. Thx in advance.

Bert


       [[alternative HTML version deleted]]

______________________________________________
R-help op 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.




-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O 


	[[alternative HTML version deleted]]



More information about the R-help mailing list