[R] how to find a row index in a matrix or a data frame ?
ggrothendieck at gmail.com
Thu Nov 25 14:07:47 CET 2010
On Thu, Nov 25, 2010 at 4:59 AM, Luedde, Mirko <mirko.luedde at sap.com> wrote:
> Dear all,
> this looks pretty much a standard problem, but I couldn't find a
> satisfying and understandable solution.
> (A) Given a data frame (or matrix), e.g.
> x <- data.frame(A=c(1, 2, 2), B=c(4, 5, 5))
> and a row of this data frame, e.g.
> r <- c(2, 5)
> I need to find one row index i (or all such indices) such that r
> is at the i-th row in x, that is, the expression
> evaluates to TRUE. I can not evaluate an expression like
> x[x[,1]==2 & x[,2]==5,]
> because I do not know in advance how many columns x will have.
> Basically, thus, I'm looking for an equivalent of "vectorfind" in
> (B) Which would be the most appropriate data type for x, matrix or
> data frame or another type?
> (C) What will be better, searching for rows or searching for columns?
which(apply(t(x) == r, 2, all))
which(colSums((t(x) != r) > 0) == 0)
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
email: ggrothendieck at gmail.com
More information about the R-help