[R] how to find a row index in a matrix or a data frame ?

Luedde, Mirko mirko.luedde at sap.com
Thu Nov 25 10:59:31 CET 2010


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 

      all(x[i,]==as.list(r)) 

    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
    Scilab.

(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?

Thank you for your help!

Best, Mirko



More information about the R-help mailing list