I’ve only done minus(vec1,vec2) so far. More to come.
library(Matrix);
#F = strsplit(as.character(mm[1,2]),', ')[[1]]
#G = matrix( as.numeric(unlist(strsplit(F[c(-1,-length(F))],':'))), nrow=2 )
#tt = new('dsparseVector', x=G[2,], i=as.integer(G[1,]), length=max(as.integer(G[1,])))
minus = function(v1,v2) {
i = sort(union(v1@i,v2@i));
s = length(i);
x = vector(mode='numeric',length=s);
for ( k in 1:s ) {
z = i[k];
if ( z < length(v1) ) {
x[k] = as.numeric(v1[z]);
}
if ( z < length(v2) ) {
x[k] = x[k] - as.numeric(v2[z]);
}
}
new("dsparseVector", x=x, i=i, length=max(v1@i,v2@i))
}
Post a Comment