grouped colSums without for loops?
Is this what you want?
lapply(split(d, d$foo), function(x) colSums(x[,-1]))
$a bar baz 2 40 $b bar baz 8 21 $c bar baz 85 2 $d bar baz 3 4
On Tue, Mar 18, 2008 at 5:41 AM, Hans Ekbrand <hans at sociologi.cjb.net> wrote:
Consider the following data.frame, d.
d <- data.frame(c("a","b","c","d","b","a"), c(1,4,85,3,4,1), c(7,6,2,4,15,33))
names(d) <- c("foo", "bar", "baz")
To get the colsum of d[[2]] for the rows that have d$foo == "a" I know
I can use
colSums(subset(d, d[[1]] == "a", select = 2))
But what is needed to get a list of colSums for d[[2]] for each factor
of d$foo ? Can it be done without a for loop?
--
Hans Ekbrand (http://sociologi.cjb.net) <hans at sociologi.cjb.net>
GPG Fingerprint: 1408 C8D5 1E7D 4C9C C27E 014F 7C2C 872A 7050 614E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFH35xlfCyHKnBQYU4RAqItAKC4Ksiq/ZP0mK98+Bp9nCeVt4m95QCfWALV
b8WM/M+ITG502zi0McHnV30=
=/dm6
-----END PGP SIGNATURE-----
______________________________________________ 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.
Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve?