Modérateur : Groupe des modérateurs
Code : Tout sélectionner
rm_following_double <- function(x) {
if (anyNA(x)) stop("impossible : valeur(s) manquante(s)")
garde <- x[-1] != x[-length(x)]
x[c(garde, TRUE)]
}
Code : Tout sélectionner
rle(c(1,1,1,600,3,4,9,3,3,3,3,1,3,650))$values
Code : Tout sélectionner
X <- data.frame(A=LETTERS[1:14], B=c(1,1,1,600,3,4,9,3,3,3,3,1,3,650))
myrle <- rle(X$B)$lengths
indexes <- c(1)
for (repnum in myrle[-length(myrle)]) {
indexes <- c(indexes, indexes[length(indexes)]+repnum)
}
X[indexes, ]
Code : Tout sélectionner
library(dplyr)
X <- data.frame(A=LETTERS[1:14], B=c(1,1,1,600,3,4,9,3,3,3,3,1,3,650))
first_occur<-function(x) x!=lead(x, default="")
ligne<-first_occur(X[ ,2])
X[ligne,]
A B
3 C 1
4 D 600
5 E 3
6 F 4
7 G 9
11 K 3
12 L 1
13 M 3
14 N 650
Serge Rapenne a écrit :Bonjour,
une solution avec le package dplyr :Code : Tout sélectionner
library(dplyr)
X <- data.frame(A=LETTERS[1:14], B=c(1,1,1,600,3,4,9,3,3,3,3,1,3,650))
first_occur<-function(x) x!=lead(x, default="")
ligne<-first_occur(X[ ,2])
X[ligne,]
A B
3 C 1
4 D 600
5 E 3
6 F 4
7 G 9
11 K 3
12 L 1
13 M 3
14 N 650
Serge
Code : Tout sélectionner
first_occur<-function(x) x!=lag(x, default="")
ligne<-first_occur(X[ ,2])
> X[ligne,]
A B
1 A 1
4 D 600
5 E 3
6 F 4
7 G 9
8 H 3
12 L 1
13 M 3
14 N 650
Retourner vers « Questions en cours »
Utilisateurs parcourant ce forum : Google [Bot] et 1 invité