Skip to content
Prev 310516 / 398506 Next

matrix of all difference between rows values

HI,
No problem.

You can also use ?aaply() from library(plyr)
dat1<-read.table(text="
?a???????? 10
???????? b???????? 9
???????? c???????? 8
???????? d???????? 7
???????? e???????? 6
",sep="",header=FALSE,stringsAsFactors=FALSE)
library(plyr) 

res1<-aaply(dat1[1,2],1,"-",toeplitz(dat1[,2]))
?res1[upper.tri(res1)]<- -1*res1[upper.tri(res1)] 
rownames(res1)<-colnames(res1)<-dat1[,1] 
?res1
?? 
#??? a? b? c? d? e
?# a 0 -1 -2 -3 -4
?# b 1? 0 -1 -2 -3
? #c 2? 1? 0 -1 -2
? #d 3? 2? 1? 0 -1
? #e 4? 3? 2? 1? 0

#or

res2<-matrix(mapply("-",dat1[1,2],toeplitz(dat1[,2])),ncol=5)
#or
#res2<- matrix(sapply(toeplitz(dat1[,2]),function(x) dat1[1,2]-x),ncol=5)
res2[upper.tri(res2)]<- -1*res2[upper.tri(res2)]
dimnames(res2)<-dimnames(res1)
identical(res2,res1)
#[1] TRUE
A.K.



----- Original Message -----
From: cleberchaves <cleberchaves at gmail.com>
To: r-help at r-project.org
Cc: 
Sent: Saturday, November 10, 2012 2:25 PM
Subject: Re: [R] matrix of all difference between rows values

Thank you very much, arun kirshna!

That's it! I only modified the "res1<-apply(toeplitz(dat1[,2]),1,function(x)
10-x)" for "res1<-apply(toeplitz(dat1[,2]),1,function(x) dat1[1,2]-x)" and
worked very well!

Thanks again!



--
View this message in context: http://r.789695.n4.nabble.com/matrix-of-all-difference-between-rows-values-tp4649191p4649196.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.