[R] calculate with different columns from different datasets

arun smartpink111 at yahoo.com
Thu Aug 29 22:37:54 CEST 2013


Hi,
Try:
 res<-sapply(seq_len(ncol(dat1)),function(i) setNames(((1-coef(lm(dat1[,i]~dat2[,i]))[2])^2)*var(dat2[,i]),NULL))
 res
#[1] 21.00000 16.11842 18.69231
A.K.


Thank you for your answer. But further calculations will be much more difficult, like 


(1-b)^2 * Var(V1)       for all matching columns 
  
where b is the slope from a regression V1 (from datset 1) on V1 (dataset 2) and Var(V1) the variance from V1(from dataset2). 

So what I'm looking for is something like a loop function... 


----- Original Message -----
From: arun <smartpink111 at yahoo.com>
To: R help <r-help at r-project.org>
Cc: 
Sent: Thursday, August 29, 2013 3:49 PM
Subject: Re: calculate with different columns from different datasets

Hi,
Try:
dat1<- read.table(text="
V1 V2 V3
2 6 8
4 3 4
1 9 8
",sep="",header=TRUE)

dat2<- read.table(text="
V1 V2 V3
6 8 4
2 0 7
8 1 3
",sep="",header=TRUE)

res1<- as.matrix(dat1-dat2)
res1
#    V1 V2 V3
#[1,] -4 -2  4
#[2,]  2  3 -3
#[3,] -7  8  5


res2<-t(t(dat1)-colMeans(dat2))
res2
#            V1 V2         V3
#[1,] -3.333333  3  3.3333333
#[2,] -1.333333  0 -0.6666667
#[3,] -4.333333  6  3.3333333


A.K.


Hi there 

I've got two datasets of the following form (just an example, the real dataset got a lot more columns) 

dataset1 

V1    V2    V3 
2    6    8 
4    3    4 
1    9    8 

and dataset 2 

V1     V2    V3 
6    8    4 
2    0    7 
8    1    3 

First, I'd like to calculate the following: 

V1 from dataset1 minus V1 from dataset2, 
than 
V2 from dataset1 minus V2 from dataset2 
... 
and so on (always Vn-Vn, where n=1,2,....n) and safe the solution-vectors in a new matrix. 

Second I'd like to run other functions over the two matching 
columns (for example: V1 from dataset1 minus mean(V1) from dataset2, V2 
from dataset1 minus mean(V2) from dataset2,...). 

So I'm looking for a simple solution that always takes the 
matching columns from the different datasets and than I can just change 
the function for the two. 

Thank you for your help! 

Kind regards



More information about the R-help mailing list