[R] how to create a substraction matrix (subtract a row of every column from the same row in other columns)

arun smartpink111 at yahoo.com
Thu Sep 13 20:14:16 CEST 2012


Hi,
Try this:
vec1<-1:5
library(MCMCpack)
 cbind(rep(0,4),xpnd(diff(combn(vec1,2)),4))
##     [,1] [,2] [,3] [,4] [,5]
#[1,]    0    1    2    3    4
#[2,]    0    2    1    2    3
#[3,]    0    3    2    1    2
#[4,]    0    4    3    2    1

dat1<-data.frame(difftype= paste0("x",combn(vec1,2,paste,collapse="x")),value=as.vector(diff(combn(vec1,2))))
 head(dat1)
#  difftype value
#1     x1x2     1
#2     x1x3     2
#3     x1x4     3
#4     x1x5     4
#5     x2x3     1
#6     x2x4     2

A.K.




----- Original Message -----
From: csmeredith <csmeredith at fs.fed.us>
To: r-help at r-project.org
Cc: 
Sent: Wednesday, September 12, 2012 4:45 PM
Subject: [R] how to create a substraction matrix (subtract a row of every column from the same row in other columns)

Hello
I have data like this

x1  x2  x3  x4  x5

I want to create a matrix similar to a correlation matrix, but with the
difference between the two values, like this

x1   x2         x3         x4          x5
x1   x2-x1    x3-x1     x4-x1     x5-x1
x2               x3-x2     x4-x2     x5-x2
x3                           x4-x3      x5-x3
x4                                        x5-x4
x5

Then I want to convert it back to a data frame with a column that describes
what columns were used in the calculation, but I would like to only include
the comparisons that go forward in number. Basically, each number represents
a year, and I want each comparison to only be listed once, the difference
between the 1st year the sample was taken and then 2nd year the sample was
taken. (This would probably entail just taking a portion of the matrix.) .
This is what the result would be 

difftype value
x1x2      
x1x3
x1x4
x1x5
x2x3
x2x4
x2x5
x3x4
x3x5
x4x5

Thank you for any help you can give me.




--
View this message in context: http://r.789695.n4.nabble.com/how-to-create-a-substraction-matrix-subtract-a-row-of-every-column-from-the-same-row-in-other-column-tp4642949.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