Bonjour,
Je dispose d'un jeux de données de 58 colonnes, où les manipulations que je cherche à faire sont sur les colonnes c(30,31,35,36,40,41,45,46,50,51).
Ci dessous un extrait
Code : Tout sélectionner
COR_HAB1 REC_HAB1 HAB2 COR_HAB2 HAB3 COR_HAB3 HAB4 COR_HAB4 HAB5 COR_HAB5
62.12 0,6 festucion scopariae 36.434 rhododendro ferruginei _ vaccinion myrtilli 31.42
41.12 1
36.434 0,75 saxifragion mediae 62.12 sedion pyrenaici 36.2
36.434 0,75 saxifragion mediae 62.12 sedion pyrenaici 36.2
Il s'agit donc d'habitat (festucion scopariae) avec un code Corine (62.12) spécifique à chacun des habitats. Cette association se répète plusieurs fois au sein des colonnes et entre les colonnes
J'aimerai obtenir un DF finale à deux colonnes "Hab", (le nom de l'habitat) et "Cori" (pour son code corine) me présentant toutes les mentions UNIQUE présents au sein du jeux de données.
J'ai effectué le code ci-dessous qui fonctionne, mais j'aimerais vraiment le simplifier en utilisant des boucles for. Mon objectif réel est de m'améliorer en indexation et utilisation des boucles.
Comment simplifier le code suivant à l'aide boucle for SVP ?
(J'ai déjà largement essayé sans succès, promis!)
Si vous avez compris mon besoin, je sais qu'il s'agira d'une formalité pour vous.
Si jamais vous avez le temps de commenter vos lignes de codes, ce serait super!
Code : Tout sélectionner
data<-read.delim("data.csv", h=T,sep=";") # Le jeu de donnée
A<-data[,c(30,31)] # j'extrait les deux première colonnes
A$Hab_COR<-paste(A[,1],A[,2], sep="_") # Je concatene dans une nouvelle colonne
colnames(A)<-c("hab","cori","hab_cor") # je renomme les colonnes pour le rbind finale
# je répète l'opération pour toutes mes colonnes.
B<-data[,c(35,36)]
B$Hab_COR<-paste(B[,1],B[,2], sep="_")
colnames(B)<-c("hab","cori","hab_cor")
C<-data[,c(40,41)]
C$Hab_COR<-paste(C[,1],C[,2], sep="_")
colnames(C)<-c("hab","cori","hab_cor")
D<-data[,c(45,46)]
D$Hab_COR<-paste(D[,1],D[,2], sep="_")
colnames(D)<-c("hab","cori","hab_cor")
E<-data[,c(50,51)]
E$Hab_COR<-paste(E[,1],E[,2], sep="_")
colnames(E)<-c("hab","cori","hab_cor")
GG<-rbind(A,B,C,D,E) # Je constitue un seul DF
GG<-GG[!duplicated(GG$hab_cor),] # Je supprime tous les doublons
Je peux vous charger un jeux de données plus conséquent si nécessaire, il faudra me dire par quel moyen.
Merci!!
S.