Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Accéder aux noms de "lignes/colonnes" d'une distance (class)
2 participants
Page 1 sur 1
Accéder aux noms de "lignes/colonnes" d'une distance (class)
Bonjour tout le monde,
Je cherche en ce moment le maximum d'une distance entre 2 individus parmi un grand nombre.
La fonction dist() répond parfaitement à ma demande de distance.
En faisant le max() sur cette dernière j'obtiens bien la valeur de la distance maximale ... mais je n'arrive pas à récupérer le "nom" de la ligne et de la colonne correspondante.
Exemple:
Si quelqu'un a une idée, je suis preneur!
Cdlt,
Khalid
Je cherche en ce moment le maximum d'une distance entre 2 individus parmi un grand nombre.
La fonction dist() répond parfaitement à ma demande de distance.
En faisant le max() sur cette dernière j'obtiens bien la valeur de la distance maximale ... mais je n'arrive pas à récupérer le "nom" de la ligne et de la colonne correspondante.
Exemple:
- Code:
dist(madateFrame[mesIndividus,]))
1 3 5
3 16.9294510
5 14.7907740 3.6169090
6 15.6790018 2.9084955 0.9588752
Si quelqu'un a une idée, je suis preneur!
Cdlt,
Khalid
HDKalit- Nombre de messages : 85
Date d'inscription : 10/01/2013
Re: Accéder aux noms de "lignes/colonnes" d'une distance (class)
En fait tu ne peux pas directement avec des indices classiques comme pour une matrice. Les données ne sont pas stockée sous la forme visible dans la console.
- Code:
mat <- matrix(rnorm(15),3)
rownames(mat) <- letters[1:3]
dis1 <- dist(mat)
dis1
a b
b 3.933523
c 3.966702 3.154431
str(dis1)
Class 'dist' atomic [1:3] 3.93 3.97 3.15
..- attr(*, "Size")= int 3
..- attr(*, "Labels")= chr [1:3] "a" "b" "c"
..- attr(*, "Diag")= logi FALSE
..- attr(*, "Upper")= logi FALSE
..- attr(*, "method")= chr "euclidean"
..- attr(*, "call")= language dist(x = mat)
- Code:
stats:::print.dist
function (x, diag = NULL, upper = NULL, digits = getOption("digits"),
justify = "none", right = TRUE, ...)
{
if (length(x)) {
if (is.null(diag))
diag <- if (is.null(a <- attr(x, "Diag")))
FALSE
else a
if (is.null(upper))
upper <- if (is.null(a <- attr(x, "Upper")))
FALSE
else a
m <- as.matrix(x)
cf <- format(m, digits = digits, justify = justify)
if (!upper)
cf[row(cf) < col(cf)] <- ""
if (!diag)
cf[row(cf) == col(cf)] <- ""
print(if (diag || upper)
cf
else cf[-1, -attr(x, "Size"), drop = FALSE], quote = FALSE,
right = right, ...)
}
else {
cat(data.class(x), "(0)\n", sep = "")
}
invisible(x)
}
droopy- Nombre de messages : 1156
Date d'inscription : 04/09/2009
Re: Accéder aux noms de "lignes/colonnes" d'une distance (class)
Merci droopy!
C'est "marrant" ces différences de "code" d'ailleurs. Parfois on est sur des classes S3, d'autres sur S4, etc. J'espère qu'on arrivera à une uniformité du langage dans l'avenir.
Merci encore pour l'info, du coup je suis repasser par un bout de code à moi en transformant en matrice la Classe 'dist'.
Cdlt,
Khalid
C'est "marrant" ces différences de "code" d'ailleurs. Parfois on est sur des classes S3, d'autres sur S4, etc. J'espère qu'on arrivera à une uniformité du langage dans l'avenir.
Merci encore pour l'info, du coup je suis repasser par un bout de code à moi en transformant en matrice la Classe 'dist'.
Cdlt,
Khalid
HDKalit- Nombre de messages : 85
Date d'inscription : 10/01/2013
Sujets similaires
» [R] Ajout de noms des colonnes d'un tableau
» Moyennes de plusieurs colonnes selon différents groupes
» Afficher 3 graphiques sur 2 lignes
» Extraire une chaîne de caractère à partir d'une autre
» Boxplot sur deux colonnes redondantes (tri)
» Moyennes de plusieurs colonnes selon différents groupes
» Afficher 3 graphiques sur 2 lignes
» Extraire une chaîne de caractère à partir d'une autre
» Boxplot sur deux colonnes redondantes (tri)
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum