Actually the rows and columns do not correspond to the IDs in cwaves since rownames 1162, 1323, 1338, and 1709 do not appear in cwaves and there is no column 197 in mat. If cwaves is defined as equal to colnames(mat), you will get one definition, but it will not match cwaves defined as equal to rownames(mat).
---------------------------------------------- David L Carlson Associate Professor of Anthropology Texas A&M University College Station, TX 77843-4352 > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-bounces@r- > project.org] On Behalf Of Berend Hasselman > Sent: Monday, October 15, 2012 2:51 PM > To: AHJ > Cc: r-help@r-project.org > Subject: Re: [R] Referring to matrix elements by name, iteratively > > > On 15-10-2012, at 19:57, AHJ wrote: > > > #Here is a vector of IDs > > > >> cwaves > > [1] 86 90 185 196 197 209 210 215 216 217 218 > > > > #Here is a matrix. The rows and columns correspond to the IDs in > cwaves, and > > the matrix is populated with a coefficient > > > >> mat > > 86 90 185 196 209 210 215 216 217 218 > > 86 0 0 0 0 0 0.00000 0 0.000000 0.000000 0.000000 > > 90 0 0 0 0 0 0.00000 0 0.000000 0.000000 0.000000 > > 185 0 0 0 0 0 0.00000 0 0.062500 0.000000 0.015625 > > 196 0 0 0 0 0 0.06250 0 0.000000 0.031250 0.000000 > > 197 0 0 0 0 0 0.06250 0 0.000000 0.000000 0.000000 > > 209 0 0 0 0 0 0.00000 0 0.000000 0.062500 0.000000 > > 210 0 0 0 0 0 0.00000 0 0.000000 0.062500 0.000000 > > 215 0 0 0 0 0 0.00000 0 0.000000 0.031250 0.000000 > > 216 0 0 0 0 0 0.00000 0 0.000000 0.000000 0.000000 > > 217 0 0 0 0 0 0.03125 0 0.031250 0.000000 0.000000 > > 218 0 0 0 0 0 0.00000 0 0.000000 0.000000 0.031250 > > 1162 0 0 0 0 0 0.00000 0 0.003906 0.007812 0.015625 > > 1323 0 0 0 0 0 0.00000 0 0.007812 0.007812 0.000000 > > 1338 0 0 0 0 0 0.00000 0 0.000000 0.000000 0.003906 > > 1709 0 0 0 0 0 0.00000 0 0.000000 0.000000 0.000000 > > > >> dput(mat) > > structure(c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0625, > > 0.0625, 0, 0, 0, 0, 0.03125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0625, 0, 0, 0, 0, 0, 0, 0.03125, > > 0, 0.003906, 0.007812, 0, 0, 0, 0, 0, 0.03125, 0, 0.0625, 0.0625, > > 0.03125, 0, 0, 0, 0.007812, 0.007812, 0, 0, 0, 0, 0.015625, 0, > > 0, 0, 0, 0, 0, 0, 0.03125, 0.015625, 0, 0.003906, 0), .Dim = c(15L, > > 10L), .Dimnames = list(c("86", "90", "185", "196", "197", "209", > > "210", "215", "216", "217", "218", "1162", "1323", "1338", "1709" > > ), c("86", "90", "185", "196", "209", "210", "215", "216", "217", > > "218"))) > > > > #I know I can refer to element [4,6] in two ways, with the index, or > with > > the name > > > >> mat[4,6] > > [1] 0.0625 > >> mat["196","210"] > > [1] 0.0625 > > > > But I want to use cwaves[4] and cwaves[10] to get the name, because > this is > > part of an iteration through thousands of IDs. > > > > This didn't work, of course, because it tries to pull out > mat[196,217] which > > doesn't exist. > >> mat[cwaves[4], cwaves[10]] > > Error: subscript out of bounds > >> mat["cwaves[4]", "cwaves[10]"] > > Error: subscript out of bounds > > > > I also tried to put the name in a variable to then use as the index, > and the > > same thing happens, of course. > >> a <- cwaves[4] > >> b <- cwaves[10] > >> mat[a,b] > > Error: subscript out of bounds > >> mat["a","b"] > > Error: subscript out of bounds > > > > Is it possible to do this? I hope the way I language it makes sense. > > Turn cwaves into a vector of characters: > > cwaves <- as.character(cwaves) > > Now you should be able to index like this: mat[cwaves[4], cwaves[10]] > > Berend > > ______________________________________________ > 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. ______________________________________________ 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.