[R] element-by-element comparison

Jim Lemon jim at bitwrit.com.au
Sun Oct 30 08:55:54 CET 2011


On 10/30/2011 02:51 PM, Wendy wrote:
> Hi,
>
> I have a vector and a matrix. For example,
>
> A = [
> 12
> 3
> 4];
>
> B = [
> 4       13
> 10      2
> 4       8];
>
> I am comparing A to each column of B using A>B[,ii], so the expected result
> is
>
> C = [
> 1    0
> 0    1
> 0    0];
>
> I am looking for a way to do this quickly instead of going through the for
> loop, but haven't had any luck yet? Any advice is appreciated.

Hi Wendy,
You probably mean something like this:

apply(B,2,`<`,A)

which means roughly
"To each column of B, apply the function `<` using A as the comparison 
values"

You will get a matrix of TRUE/FALSE values that are pretty much 
equivalent to your 0/1 values. Note that there are quite a few '*apply' 
functions and 'apply' is only guaranteed to work on arrays and matrices.

Jim



More information about the R-help mailing list