529 résultats trouvés

Aller à la recherche avancée

par François Bonnot
12 Juin 2020, 06:15
Forum : Questions en cours
Sujet : Comment renommer un dataframe ?
Réponses : 4
Vues : 143

Re: Comment renommer un dataframe ?

Bonjour, data_en_cours <- eval(as.name(load("Nom_du_fichier.Rdata"))) EDIT: Avec cette méthode, le fichier est d'abord chargé puis le data.frame recopié dans data_en_cours. Après lecture de 40 fichiers, les 40 data.frames (+ data_en_cours) seront donc en mémoire. Pour éviter cela, il est p...
par François Bonnot
03 Juin 2020, 15:35
Forum : Questions en cours
Sujet : Besoin de conseils remplacer as.matrix par getValues ?
Réponses : 9
Vues : 235

Re: Besoin de conseils remplacer as.matrix par getValues ?

Pour créer par exemple une matrice de 10 lignes et 20 colonnes avec la valeur pi pour tous les éléments: m <- matrix(pi, nrow=10, ncol=20) Evidemment il faut remplacer 10 et 20 par vos nombres de lignes et de colonnes. S'il n'y a pas d'erreur, la mémoire est suffisante. Exemple d'erreur : > m <- mat...
par François Bonnot
03 Juin 2020, 14:39
Forum : Questions en cours
Sujet : Besoin de conseils remplacer as.matrix par getValues ?
Réponses : 9
Vues : 235

Re: Besoin de conseils remplacer as.matrix par getValues ?

Bonjour,
Si expand.grid manque de mémoire, il risque d'en être de même pour la matrice.
Vous devriez avant de vous lancer dans une boucle voir s'il est possible d'allouer une matrice de la dimension finale remplie avec la même valeur numérique par exemple.
par François Bonnot
02 Juin 2020, 14:15
Forum : Questions en cours
Sujet : Trouver la position où un vecteur passe sous un seuil
Réponses : 7
Vues : 306

Re: Trouver la position où un vecteur passe sous un seuil

Bonjour,
ou encore :

Code : Tout sélectionner

max(which(c(diff(x<50),1)==0 & x<50 & (1:length(x))<which.max(x)))+1
par François Bonnot
15 Mai 2020, 07:24
Forum : Questions en cours
Sujet : Groupes de colonnes identiques
Réponses : 8
Vues : 199

Re: Groupes de colonnes identiques

Bonjour,
Une suggestion (à partir de l'objet ex1 ci-dessus) :

Code : Tout sélectionner

d <- dist(t(ex1))
u <- unique(as.matrix(d)==0)
apply(u,1,function(i) colnames(u)[i])
par François Bonnot
27 Avr 2020, 15:57
Forum : Questions en cours
Sujet : Renvoyer les deux premières valeurs maximales d'un vecteur
Réponses : 3
Vues : 110

Re: Renvoyer les deux premières valeurs maximales d'un vecteur

Bonjour,
Ou plus simplement :

Code : Tout sélectionner

Max_nombre <- function(df) head(df[order(-df$nombre),],2)
par François Bonnot
25 Avr 2020, 09:12
Forum : Questions en cours
Sujet : Déclarer des valeurs start pour nls, nlsList...
Réponses : 2
Vues : 121

Re: Déclarer des valeurs start pour nls, nlsList...

Bonjour, Une suggestion: 1) Créer une liste de vecteurs de paramètres, par exemple comme ceci: start = list(theta=c(1,1,1,1), a=c(4,4,0.5,4), tc=c(12,12,20,12), ymax=c(75,75,30,75)) m <- as.matrix(as.data.frame(start)) start.list <- lapply(1:nrow(m),function(i) m[i,]) 2) Créer une liste de data.fram...
par François Bonnot
23 Avr 2020, 11:53
Forum : Questions en cours
Sujet : xtabs
Réponses : 1
Vues : 91

Re: xtabs

Bonjour,
Une solution consiste à compléter data avec des NA pour les combinaisons inexistantes, par exemple:

Code : Tout sélectionner

grid <- expand.grid(id_quadra=unique(data$id_quadra),n.passage=unique(data$n.passage))
data <- merge(data,grid,all.y=TRUE,sort=FALSE)
par François Bonnot
16 Avr 2020, 07:37
Forum : Questions en cours
Sujet : création de groupes par présence de valeur et de NA dans des colonnes
Réponses : 4
Vues : 116

Re: création de groupes par présence de valeur et de NA dans des colonnes

Bonjour, Il faut passer vos données avec dput, voir ici: http://forums.cirad.fr/logiciel-R/viewtopic.php?f=1&t=3302 df <- structure(list(c1 = c(12L, 14L, 15L, 50L, 53L, 12L, 14L, 50L, 53L), c2 = c(17.7, NA, NA, 15, 18, 17, NA, 15.74, 17), c3 = c(18.5, NA, NA, 16.5, 17, 18, NA, 15, 15), c4 = c(27...
par François Bonnot
14 Avr 2020, 15:29
Forum : Questions en cours
Sujet : Fonction pour assigner un angle à un point dans un graphique classique
Réponses : 22
Vues : 373

Re: Fonction pour assigner un angle à un point dans un graphique classique

Autre idée (df est le même que ci-dessus) : polyg4 <- function(xcenter,ycenter,radius,angle,ouverture=60,bg,fg,lwd=1) { angle <- angle*pi/180 theta <- c(0,180-ouverture, 0, 180+ouverture)*pi/180 ratio <- c(1,1,0,1) centers <- cbind(xcenter,ycenter) if (length(radius)==1) radius <- rep(radius,nrow(ce...
par François Bonnot
14 Avr 2020, 14:49
Forum : Questions en cours
Sujet : Fonction pour assigner un angle à un point dans un graphique classique
Réponses : 22
Vues : 373

Re: Fonction pour assigner un angle à un point dans un graphique classique

Comme ceci par exemple... mais c'est valable seulement pour des triangles. polyg3 <- function(xcenter,ycenter,radius,angle,ouverture=60,bg,fg,lwd=1) { angle <- angle*pi/180 theta <- c(0,180-ouverture, 180+ouverture)*pi/180 centers <- cbind(xcenter,ycenter) if (length(radius)==1) radius <- rep(radius...
par François Bonnot
10 Avr 2020, 13:00
Forum : Questions en cours
Sujet : Fonction pour assigner un angle à un point dans un graphique classique
Réponses : 22
Vues : 373

Re: Fonction pour assigner un angle à un point dans un graphique classique

Il suffit d'une très petite modification des 2 lignes après le for, comme ceci : polyg2 <- function(xcenter,ycenter,radius,angle,bg,fg,lwd=1,edges=3) { angle <- angle*pi/180 theta <- ((0:(edges-1)))*2*pi/edges centers <- cbind(xcenter,ycenter) if (length(radius)==1) radius <- rep(radius,nrow(centers...
par François Bonnot
06 Avr 2020, 13:52
Forum : Questions en cours
Sujet : dataframe 3D
Réponses : 12
Vues : 198

Re: dataframe 3D

Bonjour,
Une solution poutrrait être une liste de data frames, par exemple :

Code : Tout sélectionner

df1 <- data.frame(x=1:3, y=letters[1:3])
df2 <- data.frame(u=(1:3)*10, y=LETTERS[1:3])
li <- list(df1,df2)
li
li[[2]][3,1]
par François Bonnot
06 Avr 2020, 11:39
Forum : Questions en cours
Sujet : Fonction pour assigner un angle à un point dans un graphique classique
Réponses : 22
Vues : 373

Re: Fonction pour assigner un angle à un point dans un graphique classique

Autre suggestion : polyg <- function(xcenter,ycenter,radius,angle,bg,fg,lwd=1,edges=3) { angle <- angle*pi/180 theta <- ((0:(edges-1)))*2*pi/edges centers <- cbind(xcenter,ycenter) if (length(radius)==1) radius <- rep(radius,nrow(centers)) for (i in 1:nrow(centers)) { x <- cos(theta+angle[i])*radius...
par François Bonnot
05 Avr 2020, 20:48
Forum : Questions en cours
Sujet : Fonction pour assigner un angle à un point dans un graphique classique
Réponses : 22
Vues : 373

Re: Fonction pour assigner un angle à un point dans un graphique classique

Bonjour, Une suggestion (on obtient d'autres polygones en passant un paramètre edges > 3) polyg <- function(xcenter,ycenter,radius,angle,bg,fg,lwd=1,edges=3) { angle <- angle*pi/180 theta <- ((0:(edges-1)))*2*pi/edges centers <- cbind(xcenter,ycenter) for (i in 1:nrow(centers)) { x <- cos(theta+angl...

Aller à la recherche avancée