On Mon, 12 Jan 2004, W. Beldman wrote: > Two questions about matrix indexing:
Not about `matrix indexing', which may have confused you. Matrix indexing of a matrix is when the index is a two-column matrix of row-column number pairs. > Is is correct that V <- V[lower.tri(V, diag=TRUE)] returns the lower > triangular of matrix V, that is: all elements above diagonal are set to zero? I No, omitted. > understand that the triangle of matrix elements of V for which lower.tri is > TRUE are returned while the others (above diagonal) are set to zero (or NA ???). So this is vector indexing by a logical vector. It does no harm to try it: > V <- matrix(1:16, 4,4) > V [,1] [,2] [,3] [,4] [1,] 1 5 9 13 [2,] 2 6 10 14 [3,] 3 7 11 15 [4,] 4 8 12 16 > lower.tri(V, diag=TRUE) [,1] [,2] [,3] [,4] [1,] TRUE FALSE FALSE FALSE [2,] TRUE TRUE FALSE FALSE [3,] TRUE TRUE TRUE FALSE [4,] TRUE TRUE TRUE TRUE > V[lower.tri(V, diag=TRUE)] [1] 1 2 3 4 6 7 8 11 12 16 so the result is the lower triangle read out as a vector in the usual first-index-varies fastest order. > If D and B are vectors of logicals, > what does V contain after V <- v[D, B, drop=FALSE] ? > I guess that elements are returned if both indexes D and B are TRUE, but I'm > not really convinced... (And again, what about the other elements?) Yes. Again, simple example: > B <- c(T, F, T, F) > D <- c(T, T, F, F) > outer(B, D) [,1] [,2] [,3] [,4] [1,] 1 1 0 0 [2,] 0 0 0 0 [3,] 1 1 0 0 [4,] 0 0 0 0 > V[B, D] [,1] [,2] [1,] 1 5 [2,] 3 7 And finally an example of matrix indexing > U <- matrix(c(1,1,2,3), 2, 2, byrow=T) > U [,1] [,2] [1,] 1 1 [2,] 2 3 > V[U] [1] 1 10 > These are probably tutorial questions, but I'm still not sure after reading "R > Language Definition (draft): Evaluation of expressions" and applicable sections > of "The R Reference Manual". Thanx! Some of the books in the FAQ, notably `S Programming', will help a lot. -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html