On Thu, Nov 25, 2010 at 4:59 AM, Luedde, Mirko <mirko.lue...@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 > > 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? >
Try this: which(apply(t(x) == r, 2, all)) or this: which(colSums((t(x) != r) > 0) == 0) -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.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.