Hello R-users,
I have a little problem.
I compare each row of a matrix with each row of another matrix.
testmat1 <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4)
testmat2 <- matrix(c(1,2,3,5,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4)
Both matrix differs in the last row.
Now I create a loop:
for (i in (1:4)){
for (j in (1:4)){
b <- (c(setequal(testmat1[j,],testmat2[i,])))
print(b)
}
}
R outputs me the following:
[1] TRUE
[1] FALSE
[1] FALSE
[1] FALSE
[1] FALSE
[1] TRUE
[1] FALSE
[1] FALSE
[1] FALSE
[1] FALSE
[1] TRUE
[1] FALSE
[1] FALSE
[1] FALSE
[1] FALSE
[1] FALSE
but I need one vector like this:
[1] TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE
FALSE FALSE FALSE FALSE
Any ideas?
thanks
--
View this message in context:
http://www.nabble.com/Make-one-vector-from-matrix-comparison-tp20421761p20421761.html
Sent from the R help mailing list archive at Nabble.com.
Try: c(inner(testmat1, testmat2, setequal)) where inner is defined here: http://finzi.psych.upenn.edu/R/Rhelp02a/archive/70762.html On Mon, Nov 10, 2008 at 10:11 AM, Chris82 <rubenbauar at gmx.de> wrote:> > Hello R-users, > > I have a little problem. > > I compare each row of a matrix with each row of another matrix. > > testmat1 <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4) > testmat2 <- matrix(c(1,2,3,5,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4) > > Both matrix differs in the last row. > > Now I create a loop: > > for (i in (1:4)){ > for (j in (1:4)){ > b <- (c(setequal(testmat1[j,],testmat2[i,]))) > print(b) > } > } > > R outputs me the following: > > [1] TRUE > [1] FALSE > [1] FALSE > [1] FALSE > [1] FALSE > [1] TRUE > [1] FALSE > [1] FALSE > [1] FALSE > [1] FALSE > [1] TRUE > [1] FALSE > [1] FALSE > [1] FALSE > [1] FALSE > [1] FALSE > > but I need one vector like this: > > [1] TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE > FALSE FALSE FALSE FALSE > > Any ideas? > > thanks > -- > View this message in context: http://www.nabble.com/Make-one-vector-from-matrix-comparison-tp20421761p20421761.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. >
Hi Chris82,
Yes. Try this:
testmat1 <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4)
testmat2 <- matrix(c(1,2,3,5,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4)
b=NULL
for (i in 1:4){
for (j in 1:4){
b <- c(b,setequal(testmat1[j,],testmat2[i,]))
b
}
}
b
HTH,
Jorge
On Mon, Nov 10, 2008 at 10:11 AM, Chris82 <rubenbauar@gmx.de> wrote:
>
> Hello R-users,
>
> I have a little problem.
>
> I compare each row of a matrix with each row of another matrix.
>
> testmat1 <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4)
> testmat2 <- matrix(c(1,2,3,5,5,6,7,8,9,10,11,12,13,14,15,16), nrow=4)
>
> Both matrix differs in the last row.
>
> Now I create a loop:
>
> for (i in (1:4)){
> for (j in (1:4)){
> b <- (c(setequal(testmat1[j,],testmat2[i,])))
> print(b)
> }
> }
>
> R outputs me the following:
>
> [1] TRUE
> [1] FALSE
> [1] FALSE
> [1] FALSE
> [1] FALSE
> [1] TRUE
> [1] FALSE
> [1] FALSE
> [1] FALSE
> [1] FALSE
> [1] TRUE
> [1] FALSE
> [1] FALSE
> [1] FALSE
> [1] FALSE
> [1] FALSE
>
> but I need one vector like this:
>
> [1] TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE
> FALSE FALSE FALSE FALSE
>
> Any ideas?
>
> thanks
> --
> View this message in context:
>
http://www.nabble.com/Make-one-vector-from-matrix-comparison-tp20421761p20421761.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
>
[[alternative HTML version deleted]]