[R] matrix of all difference between rows values

arun smartpink111 at yahoo.com
Sun Nov 11 16:49:29 CET 2012


Hi, 

 I tried with another example and was able to understand the error.  Sorry, I didn't test the code to other situations.
For example:

vec1<-c(8,7,10,15,1,3,6)
#According to my first solution:
res1<-apply(toeplitz(vec1),1,function(x) vec1[1]-x)
 res1
#     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
#[1,]    0    1   -2   -7    7    5    2
#[2,]    1    0    1   -2   -7    7    5
#[3,]   -2    1    0    1   -2   -7    7
#[4,]   -7   -2    1    0    1   -2   -7
#[5,]    7   -7   -2    1    0    1   -2
#[6,]    5    7   -7   -2    1    0    1
#[7,]    2    5    7   -7   -2    1    0

#Rui's code:
 Table1<-matrix(vec1,ncol=1)
 t(outer(Table1[,1],Table1[,1],"-"))
#or simply
 t(outer(vec1,vec1,"-"))
#     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
#[1,]    0   -1    2    7   -7   -5   -2
#[2,]    1    0    3    8   -6   -4   -1
#[3,]   -2   -3    0    5   -9   -7   -4
#[4,]   -7   -8   -5    0  -14  -12   -9
#[5,]    7    6    9   14    0    2    5
#[6,]    5    4    7   12   -2    0    3
#[7,]    2    1    4    9   -5   -3    0


#using expand.grid()
matrix(apply(expand.grid(vec1,vec1),1,diff),ncol=7)
 #    [,1] [,2] [,3] [,4] [,5] [,6] [,7]
#[1,]    0   -1    2    7   -7   -5   -2
#[2,]    1    0    3    8   -6   -4   -1
#[3,]   -2   -3    0    5   -9   -7   -4
#[4,]   -7   -8   -5    0  -14  -12   -9
#[5,]    7    6    9   14    0    2    5
#[6,]    5    4    7   12   -2    0    3
#[7,]    2    1    4    9   -5   -3    0


 identical(t(outer(vec1,vec1,"-")),matrix(apply(expand.grid(vec1,vec1),1,diff),ncol=7))
#[1] TRUE
A.K.





----- Original Message -----
From: cleberchaves <cleberchaves at gmail.com>
To: r-help at r-project.org
Cc: 
Sent: Sunday, November 11, 2012 7:07 AM
Subject: Re: [R] matrix of all difference between rows values

Hi Arun,
i don't know exactly the error of yours script. 
Maybe when i changed from "10-x" to "dat1[1,2]-x" (because my real matrix
does not start with 10) the error has appeared, the same numbers repeat in
all columns.
Maybe when i change for your second script that error does not appear again.
Nevertheless, thanks again, Arun!

Cleber Chaves



--
View this message in context: http://r.789695.n4.nabble.com/matrix-of-all-difference-between-rows-values-tp4649191p4649241.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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