# Re: [R] subsetting comparison problem

```Hi Neha,
This might help:

R1 0 1 0 1
R2 1 0 1 1
R3 1 0 0 0",
U1 1 1 0 1
U2 1 1 1 1",
# these are matrices - I think this will work for dataframes as well
for(ui in 1:dim(U)[1]) {
for(ri in 1:dim(R)[1]) {
if(sum(U[ui,]&R[ri,])==sum(R[ri,]))
cat("R\$",rownames(R)[ri]," subset of ","U\$",rownames(U)[ui],"\n",sep="")
}
}```
```
Jim

On Mon, Mar 12, 2018 at 1:59 PM, David Winsemius <dwinsem...@comcast.net> wrote:
>
>> On Mar 11, 2018, at 3:32 PM, Neha Aggarwal <aggarwalneha2...@gmail.com>
>> wrote:
>>
>> Hello All,
>> I am facing a unique problem and am unable to find any help in R help pages
>> or online. I will appreciate your help for the following problem:
>> I have 2 data-frames, samples below and there is an expected output
>>
>> R Dataframe1:
>>            C1              C2   C3         C4...... CN
>> R1       0                  1       0           1
>> R2        1                  0      1            1
>> R3        1                  0       0             0
>> .
>> .
>> .
>> RN
>>
>> U Dataframe2 :
>>             C1         C2        C3         C4...... CN
>> U1         1           1            0            1
>> U2         1           1             1            1
>>
>>
>> Expected Output:
>> U1 satisfies R1, R3
>> U2 satisfies R1, R2, R3
>>
>
> I don't think you have communicated what sort of meaning is attached to the
> word "satisfies".
>
> Here's a double loop that reports membership of the column names of each row
> of U (Dataframe2) in each row of R (Dataframe1):
>
>  apply( Dataframe2, 1, function(x){ z <- which(x==1);
>                                    z2 <- names(x)[z];
>                         zlist=apply(Dataframe1, 1, function(y){ z3 <-
> which(y==1);
>                                                                 z4 <-
> names(y)[z3];
>                                                                 z4[ which(z4
> %in% z2) ]});
>                         zlist})
> \$U1
> \$U1\$R1
> [1] "C2" "C4"
>
> \$U1\$R2
> [1] "C1" "C4"
>
> \$U1\$R3
> [1] "C1"
>
>
> \$U2
> \$U2\$R1
> [1] "C2" "C4"
>
> \$U2\$R2
> [1] "C1" "C3" "C4"
>
> \$U2\$R3
> [1] "C1"
>
> --
> David.
>
>
>> So this is a comparison of dataframes problem, with a subset dimension.
>> There are 2 dataframe R and U. column names are same. There are certain
>> columns belonging to each row in dataframe 1, denoted as 1s, while there
>> are certain cols to each U denoted as 1s in each URow in dataframe2.
>>
>> I have to find relationships between Rs and Us. So i start with each U row
>> in U dataframe (lets say U1 row) and try to find all the rows in R
>> dataframe, which are subset of U1 row.
>>
>> I cant find a way to compare rows to see if one is subset of
>> another....what can I try, any pointers/ packages will be great help.
>>
>> Thanks
>> Neha
>>
>>       [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> and provide commented, minimal, self-contained, reproducible code.
>
> David Winsemius
> Alameda, CA, USA
>
> 'Any technology distinguishable from magic is insufficiently advanced.'
> -Gehm's Corollary to Clarke's Third Law
>
> ______________________________________________
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help