[R] element-by-element comparison
Tsjerk Wassenaar
tsjerkw at gmail.com
Sun Oct 30 09:38:35 CET 2011
Hi Wendy,
Most of the binary operators can deal with matrices and vectors natively:
A<-c(12,3,4)
B<-matrix(c(4,10,4,13,2,8),3,2)
B
[,1] [,2]
[1,] 4 13
[2,] 10 2
[3,] 4 8
B<A
[,1] [,2]
[1,] TRUE FALSE
[2,] FALSE TRUE
[3,] FALSE FALSE
Cheers,
Tsjerk
On Sun, Oct 30, 2011 at 8:55 AM, Jim Lemon <jim at bitwrit.com.au> wrote:
> 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
>
> ______________________________________________
> R-help at 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.
>
--
Tsjerk A. Wassenaar, Ph.D.
post-doctoral researcher
Molecular Dynamics Group
* Groningen Institute for Biomolecular Research and Biotechnology
* Zernike Institute for Advanced Materials
University of Groningen
The Netherlands
More information about the R-help
mailing list