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) :
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
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.

Je voudrais créer un data.frame T2 :
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 A, sortir la valeur si elle est non nulle.
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 :
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
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.

Est-ce que quelqu'un saurait réaliser un tel programme avec R ?