Bonjour,
J'ai un data.frame d'une centaine de colonnes, que je voudrais transformer selon le nom des colonnes.
Comme c'est un peu compliqué à expliquer, voici un exemple :
J'ai le data.frame suivant (appelons le T1) :Il est produit avec le programme T1 <- data.frame(Num=c('1','2'),A01=c(0,2),A02=c(0,0),A03=c(0,1),A04=c(2,0),BB=c('001','002'))Remarque : La variable Num est le numéro des observations.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Num A01 A02 B01 B02 CC 1 0 0 0 2 001 2 2 0 1 0 002
Je voudrais créer un data.frame T2 :Lorsque le nom d'une variable commence par la lettre A, sortir la valeur si elle est non nulle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Num CC DD NB 1 001 B02 2 2 002 A01 4 2 002 B01 1
Lorsque le nom d'une variable commence par la lettre B, sortir le double de la valeur si elle est non nulle.
Cela revient à créer un programme qui ressemble à ceci :Mon problème est de créer un data.frame vide que je remplie peu à peu, en faisant un traitement différencié selon le nom des variables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Initialisation : Créer un data.frame vide, avec les variables Num, CC, DD, NB Pour chaque observation : Pour chaque variable dont le nom commence par la lettre A : Si la valeur de la variable est non nulle alors DD=nom de la variable NB=valeur de la variable Sortir le résultat dans le nouveau data.frame Pour chaque variable dont le nom commence par la lettre B : Si la valeur de la variable est non nulle alors DD=nom de la variable NB=2 * valeur de la variable Sortir le résultat dans le nouveau data.frame
Est-ce que quelqu'un saurait réaliser un tel programme avec R ?
Partager