Je dispose d'une data frame avec 90 colonnes et 1800 lignes. Je souhaite garder uniquement les lignes supérieures à une certaine valeur et donc j'ai pensé à utiliser un flag pour cela. Avec un exemple ça sera plus parlant (j'ai pris des nombres aléatoires) :
Ma data frame a cette forme :
Code : Tout sélectionner
df1<-data.frame(masse,a,b,c,d)
masse a b c d
1 1 -1.2557855 0.5874978 -1.02459899 0.9664616
2 2 1.3886050 -0.8129653 -0.68698018 0.5599505
3 3 -0.6273703 -0.7318345 0.58267617 -0.8576847
4 4 -0.1463911 -1.8717743 1.14981463 -0.3000195
5 5 -0.2899622 -0.4282006 -0.03105713 -1.2476672
6 6 0.4003835 -0.0788654 -0.93095767 1.0691213
Je veux insérer entre chaque colonne de ma df un flag qui me donnerait 1 si la condition est respectée (par exemple df[,i]>=0.5) sinon 0. Mon objectif final est de tracer chaque colonne "réduite" en fonction de la masse (1 ère colonne). Ma méthode pour arriver à cela n'est peut être pas la plus simple... ça fait seulement 1 mois que j'utilise R et que je fais ce genre de programmation.
J'ai créé une df vide
Code : Tout sélectionner
df2<-data.frame(matrix(NA,ncol=5,nrow=20))
X1 X2 X3 X4 X5
1 NA NA NA NA NA
2 NA NA NA NA NA
...
Et je veux la remplir de ma df1 et des flags (les flags doivent être de préférence à coté de la colonne étudiée). J'ai fait une boucle qui ne fonctionne pas...
Code : Tout sélectionner
j=1
for ( i in 2 :5){
df2[,j]=df1[,i]
df2[,j+1]=0
df2$df2[,j+1][df2[,j]>=0.5]<-1
j<-j+2}
Je vois certains trucs qui clochent dans ma boucle mais je ne sais pas les traduire en langage R... Et j'ai également du mal à bien comprendre la nuance entre le signe = et <- : avec le signe <- on donne une valeur à un objet mais avec le égal on fixe une valeur ??
J'ai essayé de formuler mon problème le plus synthétiquement et clairement possible mais n’hésitez pas pour les questions. Merci par avance.
Amicalement,
Marion