[R] populating matrix with binary variable after matching data from data frame
Adrian Johnson
oriolebaltimore at gmail.com
Wed Aug 13 17:44:42 CEST 2014
Hi.
Thank you for your help.
yes, thats exactly right - but the 1211x1211 matrix has some
row/column elements that may not be present in x1.
Is that the reason I get this error?
My matrix row names and column names are identical. I changed the
order in my dput code for representational purpose so that they can
have 1 for conveying question easily.
Thanks
A B C D E
A
B
C
D
> for (i in nrow(x1)) {
+ x[x1$V1[i], x1$V2[i]] <- 1;
+ }
Error in `[<-`(`*tmp*`, x1[i, ]$V1, x1[i, ]$V2, value = 1) :
subscript out of bounds
On Wed, Aug 13, 2014 at 8:28 AM, John McKown
<john.archie.mckown at gmail.com> wrote:
> On Tue, Aug 12, 2014 at 7:14 PM, Adrian Johnson <oriolebaltimore at gmail.com>
> wrote:
>>
>> Hi:
>> sorry I have a basic question.
>>
>> I have a data frame with two columns:
>> > x1
>> V1 V2
>> 1 AKT3 TCL1A
>> 2 AKTIP VPS41
>> 3 AKTIP PDPK1
>> 4 AKTIP GTF3C1
>> 5 AKTIP HOOK2
>> 6 AKTIP POLA2
>> 7 AKTIP KIAA1377
>> 8 AKTIP FAM160A2
>> 9 AKTIP VPS16
>> 10 AKTIP VPS18
>>
>>
>> I have a matrix 1211x1211 (using some elements in x1$V1 and some from
>> x1$V2). I want to populate for every match for example AKT3 = TCL1A = 1
>> whereas AKT3 - VPS41 gets 0)
>> How can i map this binary relations in x.
>>
>>
>> >x
>> TCLA1 VPS41 ABCA13 ABCA4
>> AKT3 0 0 0 0
>> AKTIP 0 0 0 0
>> ABCA13 0 0 0 0
>> ABCA4 0 0 0 0
>>
>
> <snip>
>
> I'm not totally sure that I understand your data structure. So I will
> rephrase a bit so that I can be corrected, if necessary. You have an
> 1211x1121 matrix already. Every cell in the matrix is initialized to 0. It
> has column names such as TCLA1, VPS41, ABCA13, ABCA4, ... and it has row
> names such as AKT3 AKTPI, ABCA13, ABCA4. The list "x1" has columns named V1
> and V2. V1 values are row names in the matrix. V2 values are column names in
> the matrix. The following should do what you want. It is not a _good_
> solution because it is iterative. But it is a start
>
> for (i in nrow(x1)) {
> x[x1$V1[i], x1$V2[i]] <- 1;
> }
>
>>
>>
>> Thanks
>> Adrian
>>
>> [[alternative HTML version deleted]]
>>
>
> Please post in plain text, per the mailing list "rules".
>
> --
> There is nothing more pleasant than traveling and meeting new people!
> Genghis Khan
>
> Maranatha! <><
> John McKown
More information about the R-help
mailing list