Lauri Nikkinen wrote: > > R users, > > I don't know if I can make myself clear but I'll give it a try. I have > a data.frame like this > > x <- "var1,var2,var3,var4 > a,b,b,a > b,b,c,b > c,a,a,a > a,b,c,c > b,a,c,a > c,c,b,b > a,c,a,b > b,c,a,c > c,a,b,c" > DF <- read.table(textConnection(x), header=T, sep=",") > DF > > and I would like to sum all the combinations/occurences by a factor > (letter in this case) between variables and produce a list of > "occurrence" matrices. For example in this case the "occurrence" > matrix (first element of list) for factor "a" should look like this > >>occulist > $a > var1 var2 var3 var4 > var1 x 0 1 1 > var2 0 x 1 2 > var3 1 1 x 1 > var4 1 2 1 x > > $b > etc. > > because there is two rows where var2 and var4 has "a" > > > I think this does it: > > occur.matrices <- function(df) { > levels <- levels(unlist(df)) > ans <- lapply(levels, function(level) crossprod(df == level)) > structure(ans, names=levels) > } > > Dan > >> occur.matrices(DF) > $a > var1 var2 var3 var4 > var1 3 0 1 1 > var2 0 3 1 2 > var3 1 1 3 1 > var4 1 2 1 3 > > $b > var1 var2 var3 var4 > var1 3 1 0 1 > var2 1 3 1 1 > var3 0 1 3 1 > var4 1 1 1 3 > > $c > var1 var2 var3 var4 > var1 3 1 0 1 > var2 1 3 0 1 > var3 0 0 3 1 > var4 1 1 1 3 > > > > DF[DF$var2=="a" & DF$var4=="a",] > > Can you give an advice how to achieve this kind of a list of matrices? > > -Lauri > > ______________________________________________ > 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. > >
-- View this message in context: http://www.nabble.com/List-of-%22occurrence%22-matrices-tp18870809p18871268.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.