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_bo...@outlook.com> Sent: Wednesday, September 1, 2021 6:00 PM To: r-help@r-project.org; Mohammad Tanvir Ahamed <mashra...@yahoo.com>; Avi Gross <avigr...@verizon.net>; Richard M. Heiberger <r...@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 <mashra...@yahoo.com> Sent: Wednesday 1 September 2021 21:48 To: r-help@r-project.org <r-help@r-project.org>; Eliza Botto <eliza_bo...@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_bo...@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 [[alternative HTML version deleted]] ______________________________________________ R-help@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. [[alternative HTML version deleted]] ______________________________________________ R-help@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.