Mirko,

Here is a solution - I am sure other R mentors would find a more efficient
one


> x <- data.frame(A=c(1, 2, 2), B=c(4, 5, 5))

> x <- rbind(x,x)

> r <- c(2,5)

>

> (rowfind=apply(x,1,FUN=function(row,add){isTRUE(all.equal(row,add,check.attributes
= FALSE))},add=r))

1 2 3 4 5 6

FALSE TRUE TRUE FALSE TRUE TRUE

> (rowfindindex=(1:nrow(x))[rowfind])

[1] 2 3 5 6



Hope this help,


Eric

2010/11/25 Luedde, Mirko <mirko.lue...@sap.com>

> 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
>
> ______________________________________________
> 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<http://www.r-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Eric Lecoutre
Consultant - Business & Decision
Business Intelligence & Customer Intelligence

        [[alternative HTML version deleted]]

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

Reply via email to