Hello,
J'ai un data.frame ayant des valeurs manquantes (NA) et je cherche à les déplacer vers la droite.
Le code suivant permet de générer des exemples de mon problème :
Si je l'exécute, j'obtiens par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 genExample <- function(nbCol=7,nbLin=4) data.frame(matrix(runif(nbCol*nbLin)+sample(c(0,NA),nbCol*nbLin,TRUE,c(0.8,0.2)),ncol=nbCol))
Et je voudrais obtenir ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 > (dd <- genExample()) X1 X2 X3 X4 X5 X6 X7 1 0.4885394 0.7426915 NA 0.2103834 NA NA 0.08311188 2 0.2607933 NA 0.4812214 NA 0.04364146 0.1707916 NA 3 0.7486880 0.2456087 0.4043528 NA 0.13251084 NA 0.87925675 4 0.5115420 0.8985941 NA NA 0.40280238 NA 0.36108639
Pour faire ceci, j'ai déjà réalisé un code qui utilise une boucle. Mais dans mon vrai problème, je n'ai pas 6 lignes mais plus de 100000 lignes et mon code est bien trop lent (plus de 8 heures!).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 X1 X2 X3 X4 X5 X6 X7 1 0.4885394 0.7426915 0.2103834 0.08311188 NA NA NA 2 0.2607933 0.4812214 0.04364146 0.1707916 NA NA NA 3 0.7486880 0.2456087 0.4043528 0.13251084 0.87925675 NA NA 4 0.5115420 0.8985941 0.40280238 0.36108639 NA NA NA
Pourriez-vous svp m'aider à faire un code optimal (apply(), vectorisation, ...) pour résoudre ce problème?
Merci![]()
Partager