2857 résultats trouvés

Aller à la recherche avancée

par Logez Maxime
21 Fév 2019, 13:00
Forum : Questions en cours
Sujet : Récupérer une sous-matrice avec les points au bord
Réponses : 5
Vues : 95

Re: Récupérer une sous-matrice avec les points au bord

re, le '1-e7' est le seuil en dessous duquel tu considères que les distances sont identiques a 'scale'. le 3 ou le 5 c'est le nombre distances qui doivent être inférieur a scale. Le problème avec la matrice de distance c'est qu'elle contient aussi sur sa diagonale les distances entre les points eux ...
par Logez Maxime
21 Fév 2019, 12:55
Forum : Questions en cours
Sujet : Extraction de données d'une matrice selon 3 arguments
Réponses : 6
Vues : 59

Re: Extraction de données d'une matrice selon 3 arguments

Bonjour, l'objet que t'as crée tapply est un array, c'est à dire une matrice a plus de 2 dimensions. Pour avoir ce que tu souhaites il te faut permuter les dimensions de cet array. Un exemple avec ton array qui s'appélerait 'res' : res2 <- aperm(res, c(2, 3, 1)) Dans res2 tu as les mois en ligne, le...
par Logez Maxime
14 Fév 2019, 10:48
Forum : Questions en cours
Sujet : Récupérer une sous-matrice avec les points au bord
Réponses : 5
Vues : 95

Re: Récupérer une sous-matrice avec les points au bord

re,

peut-être réduire le nombre comparaisons 3 au lieu de 4 ?:

Code : Tout sélectionner

X[rowSums((abs(d2 -scale)<1e-7)) < 3,]
Cordialement,
Maxime
par Logez Maxime
13 Fév 2019, 16:31
Forum : Questions en cours
Sujet : Récupérer une sous-matrice avec les points au bord
Réponses : 5
Vues : 95

Re: Récupérer une sous-matrice avec les points au bord

Bonjour,

a la va vite :

Code : Tout sélectionner

d1 <- dist(X)
d2 <- as.matrix(d1)
edge <- X[rowSums((abs(d2 -scale)<1e-7)) < 4,]
plot(X)
points(edge, col = "green", pch = 19)
Cordialement,
Maxime
par Logez Maxime
08 Fév 2019, 14:25
Forum : Questions en cours
Sujet : Eviter les boucles et passer par apply
Réponses : 8
Vues : 98

Re: Eviter les boucles et passer par apply

Mise à jour avec purr : microbenchmark( Lapply = { res <- lapply(tab[c("Moysite", "Q25site", "Q75site")], fun) res <- do.call(cbind, res) colnames(res) <- paste0(c("Moysite", "Q25site", "Q75site"), "_haq") cbind(tab, res) }, Sappl...
par Logez Maxime
08 Fév 2019, 14:05
Forum : Questions en cours
Sujet : Eviter les boucles et passer par apply
Réponses : 8
Vues : 98

Re: Eviter les boucles et passer par apply

re, je suis surpris par le temps de calcul je suis arrivé à ça, avec une boucle (encapsulée), les différentes fonctions de *apply et ta solution tidyverse : fun <- function (x) { bob <- rep("fort", length(x)) bob[x < tab$Q75haquart] <- "moyen" bob[x < tab$Q25haquart] <- "fai...
par Logez Maxime
08 Fév 2019, 13:02
Forum : Questions en cours
Sujet : Eviter les boucles et passer par apply
Réponses : 8
Vues : 98

Re: Eviter les boucles et passer par apply

Bonjour, Pourquoi ça ne serait pas propre avec des ifelse ? Ici tout peut se faire en vectorisant les calculs il n'y a pas besoin de faire des boucles ou des apply. tab$Moy_site_haq <- "fort" tab$Moy_site_haq[tab$Moysite < tab$Q75haquart] <- "moyen" tab$Moy_site_haq[tab$Moysite <...
par Logez Maxime
30 Jan 2019, 08:57
Forum : Questions en cours
Sujet : Simulation échantillon
Réponses : 3
Vues : 140

Re: Simulation échantillon

Bonjour, tu peux te servir d'une estimation de la densité de ta variable : x <- c(rlnorm(100), rpois(100, 5), rnorm(100), rnorm(100, 3), rbinom(100, 1, 0.5), rbeta(100, 0.5, 5)) d1 <- density(x) # les tirages aléatoires ralea <- function(n, d) { px <- c(0, diff(d$x)*(d$y[-1]+d$y[-length(d$y)])/2) px...
par Logez Maxime
24 Jan 2019, 13:17
Forum : Questions en cours
Sujet : Ajouter une ligne dans chaque matrice d'un array
Réponses : 5
Vues : 160

Re: Ajouter une ligne dans chaque matrice d'un array

Bonjour, La fonction rbind est faite pour des objets ne dépassant pas les deux dimensions. Or dans ton cas tu pars d'un array de dimension 4 14 5 et de l'autre un vecteur de longueur 14. Du coup pour pouvoir lier les deux en lignes, rbind ramène les objets à des dimensions communes, ici celle du plu...
par Logez Maxime
20 Jan 2019, 19:39
Forum : Questions en cours
Sujet : Évaluer arguments dans match.call()
Réponses : 6
Vues : 224

Re: Évaluer arguments dans match.call()

Bonjour, je ne sais pas comment sont gérer les variables avec shiny, c'est probablement un problème d'environnement. La solution la plus simple : fun <- function(x, y) { res <- match.call() x <- x y <- y res[[2]] <- x res[[3]] <- y return(res) } Cordialement, Maxime
par Logez Maxime
18 Jan 2019, 19:31
Forum : Questions en cours
Sujet : Évaluer arguments dans match.call()
Réponses : 6
Vues : 224

Re: Évaluer arguments dans match.call()

Bonjour, fun <- function(x, y) { env1 <- environment() res <- match.call() for (i in 2:length(res)) { if (is.name(u <- res[[i]]) || is.call(u)) res[[i]] <- eval(u, env = parent.env(env1)) } return(res) } Cordialement, Maxime
par Logez Maxime
17 Jan 2019, 14:09
Forum : Questions en cours
Sujet : Évaluer arguments dans match.call()
Réponses : 6
Vues : 224

Re: Évaluer arguments dans match.call()

Bonjour, Il y a surement plus propre : fun <- function(x, y) { env1 <- environment() res <- match.call() for (i in 2:length(res)) { if (is.name(u <- res[[i]])) res[[i]] <- get(as.character(u), env = parent.env(env1)) # a la place de as.character : deparse } return(res) } # ou fun <- function(x, y) {...
par Logez Maxime
15 Jan 2019, 13:10
Forum : Questions en cours
Sujet : Camembert avec étiquettes "sur le bord"
Réponses : 4
Vues : 161

Re: Camembert avec étiquettes "sur le bord"

Bonjour,

Tu peux aussi regarder du côté de la fonction sco.label de la librairie ade4 pour la disposition des étiquettes.

Cordialement,
Maxime
par Logez Maxime
09 Jan 2019, 08:01
Forum : Questions en cours
Sujet : Valeur minimum par ligne
Réponses : 11
Vues : 320

Re: Valeur minimum par ligne

Bonjour, je savais bien qu'on pouvait faire encore plus efficace avec les fonctions du package rpgm : don <- matrix(rnorm(1e6*14), 1e6) colnames(don) <- sprintf("X%02d", 1:ncol(don)) library(rpgm) x1 <- colnames(don) auxi <- rowMins(don) test1 <- x1[t(don == auxi)*1:ncol(don)] Cordialement...

Aller à la recherche avancée