library(Matrix)
a = sparseMatrix(i=c(20, 30, 100000000), j=rep(1, 3), x=c(2.2, 3.3,
4.4))
b = sparseMatrix(i=c(3, 30), j=rep(1, 2), x=c(0.1, 0.1), dims=dim(a))
theSum = a+b
summary(theSum)
hth,
b
On Sep 8, 2009, at 10:19 AM, Henrique Dallazuanna wrote:
Try this:
abMerge <- merge(a, b, by = 'index', all = TRUE)
list(index = abMerge$index, val = rowSums(abMerge[,2:3], na.rm =
TRUE))
On Tue, Sep 8, 2009 at 10:06 AM, Robin Hankin <rk...@cam.ac.uk> wrote:
Hi
I deal with long vectors almost all of whose elements are zero.
Typically, the length will be ~5e7 with ~100 nonzero elements.
I want to deal with these objects using a sort of sparse
vector.
The problem is that I want to be able to 'add' two such
vectors.
Toy problem follows. Suppose I have two such objects, 'a' and 'b':
a
$index
[1] 20 30 100000000
$val
[1] 2.2 3.3 4.4
b
$index
[1] 3 30
$val
[1] 0.1 0.1
What I want is the "sum" of these:
AplusB
$index
[1] 3 20 30 100000000
$val
[1] 0.1 2.2 3.4 4.4
See how the value for index=30 (being common to both) is 3.4
(=3.3+0.1). What's the best R idiom to achieve this?
--
Robin K. S. Hankin
Uncertainty Analyst
University of Cambridge
19 Silver Street
Cambridge CB3 9EP
01223-764877
______________________________________________
R-help@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.
--
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O
[[alternative HTML version deleted]]
<ATT00001.txt>
______________________________________________
R-help@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.