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

Rui Barradas ruipbarradas at sapo.pt
Thu Sep 13 11:04:24 CEST 2012


Hello,

I'm not sure if this is what you want.

dat <- data.frame(matrix(1:25 + rnorm(25), ncol=5,
     dimnames=list(NULL, paste0("x", 1:5))))

d2 <- apply(dat, 1, diff)
nms <- t(outer(names(dat), names(dat), paste0))

res <- data.frame(difftype = nms[lower.tri(nms)],
     value = d2[lower.tri(d2, diag = TRUE)])
res

Hope this helps,

Rui Barradas

Em 12-09-2012 21:45, csmeredith escreveu:
> 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