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 <[email protected]> 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 > > ______________________________________________ > [email protected] 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]]
______________________________________________ [email protected] 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.

