conditional replacement of elements of matrix with another matrix column
Why would you ask your question without mentioning that the two vectors may be of unequal length when your abbreviated example was not like that! You have two CASES here. In one A is longer and in one B is longer. When they are the same, it does not matter. So in your scenario, consider looking at length(A) and length(B) and adjusting whatever method you use carefully. You now might need to use 1:N notation to limit what you are doing so you do not access values out of bounds. Not going to do it for you. I see others have also supplied variants and . From: Eliza Botto <eliza_botto at outlook.com> Sent: Wednesday, September 1, 2021 6:00 PM To: r-help at r-project.org; Mohammad Tanvir Ahamed <mashranga at yahoo.com>; Avi Gross <avigross at verizon.net>; Richard M. Heiberger <rmh at temple.edu> Subject: Re: [R] conditional replacement of elements of matrix with another matrix column I thank you all. But the code doesn't work on my different dataset where A and B have different column lengths. For example,
dput(A)
structure(c(17897, 17897, 17897, 17897, 17897, 17897, 17897, 17897, 17897, 17897, 17897, 17897, 17897, 17897, 17897, 17897, SNIP Can you please guide me how to implement the given code on this dataset? I thanyou in advance _____ From: Mohammad Tanvir Ahamed <mashranga at yahoo.com> Sent: Wednesday 1 September 2021 21:48 To: r-help at r-project.org <r-help at r-project.org>; Eliza Botto <eliza_botto at outlook.com> Subject: Re: [R] conditional replacement of elements of matrix with another matrix column C1 <- A C1[,2][which(B[,1]%in%A[,1])] <- B[,2][which(B[,1]%in%A[,1])] Regards............. Tanvir Ahamed On Wednesday, 1 September 2021, 11:00:16 pm GMT+2, Eliza Botto
<eliza_botto at outlook.com> wrote:
deaR useRs, I have the matrix "A" and matrix "B" and I want the matrix "C". Is there a way of doing it?
dput(A)
structure(c(12, 12, 12, 13, 13, 13, 14, 14, 14, NA, NA, NA, NA, NA, NA, NA, NA, NA), .Dim = c(9L, 2L))
dput(B)
structure(c(11, 11, 11, 13, 13, 13, 14, 14, 14, 6, 7, 8, 9, 10, 11, 12, 13, 14), .Dim = c(9L, 2L))
dput(C)
structure(c(12, 12, 12, 13, 13, 13, 14, 14, 14, NA, NA, NA, 9, 10, 11, 12, 13, 14), .Dim = c(9L, 2L)) Precisely, I want to replace the elements of 2nd column of A with those of B provided the elements of 1st column match. Is there a single line loop or code for that? Thanks in advance, Eliza Botto ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.