Hey folks, I have two arrays: "A" (1X100) with non-ordered values ranging 1-14 "B" (2X14) containing 14 decimal values. I would like to create a new array (1X100) that contains only the decimal values from array B by associating the integers from A and B. In other words, for each value of A find the same integer value of B, select the associated decimal value of B. A B newarray 1 1 0.1 0.1 1 2 0.3 0.1 1 3 0.14 0.1 2 4 0.2 0.3 3 5 0.82 0.14 3 6 0.21 0.14 4 . . 0.2 7 . . . 14 . . . 4 14 0.03 . 3 . 5 . . . . . Any suggestions are greatly appreciated! -- View this message in context: http://r.789695.n4.nabble.com/Search-arrays-based-on-similar-values-tp3429381p3429381.html Sent from the R help mailing list archive at Nabble.com.
On Apr 5, 2011, at 6:34 PM, mjdubya wrote:> Hey folks, > I have two arrays: "A" (1X100) with non-ordered values ranging 1-14 > "B" (2X14) containing 14 decimal values. > I would like to create a new array (1X100) that contains only the > decimal > values from array B by associating the integers from A and B. In > other > words, for each value of A find the same integer value of B, select > the > associated decimal value of B.Sounds like a job for merge(). Tested solutions offered when reproducible examples are provided.> > A B newarray > 1 1 0.1 0.1 > 1 2 0.3 0.1 > 1 3 0.14 0.1 > 2 4 0.2 0.3 > 3 5 0.82 0.14 > 3 6 0.21 0.14 > 4 . . 0.2 > 7 . . . > 14 . . . > 4 14 0.03 . > 3 . > 5 . > . . > . .David Winsemius, MD West Hartford, CT
On Tue, Apr 05, 2011 at 05:34:50PM -0500, mjdubya wrote:> Hey folks, > I have two arrays: "A" (1X100) with non-ordered values ranging 1-14 > "B" (2X14) containing 14 decimal values. > I would like to create a new array (1X100) that contains only the decimal > values from array B by associating the integers from A and B. In other > words, for each value of A find the same integer value of B, select the > associated decimal value of B. > > A B newarray > 1 1 0.1 0.1 > 1 2 0.3 0.1 > 1 3 0.14 0.1 > 2 4 0.2 0.3 > 3 5 0.82 0.14 > 3 6 0.21 0.14 > 4 . . 0.2 > 7 . . . > 14 . . . > 4 14 0.03 . > 3 . > 5 . > . . > . .Hi. The first column of B seems to contain consecutive integers 1:nrow(B). If this is true, then try following B <- cbind(1:6, c(0.1, 0.3, 0.14, 0.2, 0.82, 0.21)) A <- rbind(1, 1, 1, 2, 3, 3, 4, 6) cbind(B[A[, 1], 2]) Hope this helps. Petr Savicky.