
Untitled
By: a guest on
Jun 26th, 2012 | syntax:
None | size: 1.07 KB | hits: 19 | expires: Never
Sum matrix rows with same index
ID, string, float, int
[...]
2038 0;1;2;3;4;5;6;4;2; 898.990 325469692
2040 0;1;2;3;4;5;6;4;2; 932.212 346769837
2041 0;1;2;3;4;5;6;4;3; 1031.700 400210530
2042 0;1;2;3;4;5;6;4;3; 1308.280 510633672
2043 0;1;2;3;4;5;6;4;3; 1336.170 480728121
XX 0;1;2;3;4;5;6;4;2; 1831.202 672239529
XY 0;1;2;3;4;5;6;4;3; 3676.15 1391572323
dat <- read.table(textConnection("ID, string, float, int
2038 0;1;2;3;4;5;6;4;2; 898.990 325469692
2040 0;1;2;3;4;5;6;4;2; 932.212 346769837
2041 0;1;2;3;4;5;6;4;3; 1031.700 400210530
2042 0;1;2;3;4;5;6;4;3; 1308.280 510633672
2043 0;1;2;3;4;5;6;4;3; 1336.170 480728121"), header = TRUE)
dat <- dat[ , c("string.", "float.", "int")]
aggregate( . ~ string., data = dat, sum)
string. float. int
1 0;1;2;3;4;5;6;4;2; 1831.202 672239529
2 0;1;2;3;4;5;6;4;3; 3676.150 1391572323
library(plyr)
ddply(dat, "string", summarise, floatsum = sum(float), intsum = sum(int))
library(reshape)
cast(melt(dat[, -1]), string ~ ..., sum)