Skip to content

help with matrix

2 messages · Kátia Emidio, Sarah Goslee

#
Hi,
 I am a beginner at R and I would like to get information from a matrix,
where the numbers are larger than or equal to 50m . This means that plants
need to be apart 50m.  I  need to get the selection(the results) as a
matrix or another object that allows me to identify which pair of species
are 50m apart. Attached it is an example...

Thanks

-- 
K?tia Em?dio da Silva DSc
Eng. Florestal
Manaus/AM



Forestry Engineer
Manaus/AM-Brazil
#
Hi,

Please don't cross-post: choose the most appropriate email list and
send your question only to that one. The best place for general
questions like this is R-help.
On Fri, Jul 19, 2013 at 9:12 AM, K?tia Emidio <kat.emidio at gmail.com> wrote:
Attaching your data isn't nearly as useful as using dput() to include
it directly in the email. Many people dislike opening unsolicited
attachments, and the mail server strips most of them off anyway.

There are almost certainly more elegant ways to accomplish this.
Please move the discussion to R-help if you wish to continue it.

# recreate your data
adist <- structure(list(Nauc_calo_1 = c(0, 118.74, 172.27, 152.72, 119.45,
85.351), Nauc_calo_2 = c(118.74, 0, 165.8, 141.68, 67.186, 151.47
), Nauc_calo_3 = c(172.27, 165.8, 0, 24.331, 98.671, 104.72),
    Nauc_calo_4 = c(152.72, 141.68, 24.331, 0, 74.673, 93.503
    ), Nauc_calo_5 = c(119.45, 67.186, 98.671, 74.673, 0, 108.95
    ), Nauc_calo_6 = c(85.351, 151.47, 104.72, 93.503, 108.95,
    0)), .Names = c("Nauc_calo_1", "Nauc_calo_2", "Nauc_calo_3",
"Nauc_calo_4", "Nauc_calo_5", "Nauc_calo_6"), class = "data.frame",
row.names = c("Nauc_calo_1",
"Nauc_calo_2", "Nauc_calo_3", "Nauc_calo_4", "Nauc_calo_5", "Nauc_calo_6"
))

# identify which elements are >= 50
index50 <- data.frame(which(adist >= 50, arr.ind=TRUE))
# take unique pairs from your symmetric matrix
index50 <- subset(index50, row < col)
# get the associated names
results50 <- data.frame(row = rownames(adist)[index50$row], col =
colnames(adist)[index50$col], stringsAsFactors = FALSE)

Sarah