Created
May 25, 2019 09:01
-
-
Save SimonGenin/f58561363ef34b70312328509bcdd44e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
data<-read.table("competition.csv", | |
sep=";", | |
header=TRUE, | |
dec=",") | |
# Ajoute la colonne de poids individuel | |
data$PoidsInd <- data$Poids/data$DensiteSp | |
# On sépare les deux espèces | |
splitted <- split(data, data$Espece) | |
# Et on les recupère dans deux autres tableaux | |
moutardeData <- splitted$`Moutarde blanche` | |
seigleData <- splitted$Seigle | |
# On détermine le poids moyen de chaque densité | |
# Format: | |
# 2 4 8 18 | |
# double double double double | |
PoidsMoyMoutarde <- tapply(moutardeData$PoidsInd, moutardeData$DensiteSp, mean) | |
PoidsMoySeigle <- tapply(seigleData$PoidsInd, seigleData$DensiteSp, mean) | |
# On créer la nouvelle data frame qui contiendra | |
# la moutarde avec un poids individuel supérieur au poids moyen. | |
# On defini un nombre de colonnes et on les nomme juste après. | |
mdf <- data.frame(matrix(ncol = 6, nrow = 0)) | |
colnames(mdf) <- names(data) | |
# Pour chaque colonne | |
for (row in 1:nrow(moutardeData)) { | |
# On recupere l'élement à l'indice "row" | |
observation <- moutardeData[row, ] | |
# Si le poids individuel est supérieur au poids moyen | |
# Le 'paste' permet de transformer la valeur de la variable en string, ce qui est ici nécessaire. | |
if (observation$PoidsInd >= PoidsMoyMoutarde[paste(observation$DensiteSp)]) { | |
# on ajoute la ligne | |
mdf[nrow(mdf) + 1,] = observation | |
} | |
} | |
# On créer la nouvelle data frame qui contiendra | |
# le seigle avec un poids individuel supérieur au poids moyen. | |
# On defini un nombre de colonnes et on les nomme juste après. | |
sdf <- data.frame(matrix(ncol = 6, nrow = 0)) | |
colnames(sdf) <- names(data) | |
# Pour chaque colonne | |
for (row in 1:nrow(seigleData)) { | |
# On recupere l'élement à l'indice "row" | |
observation <- seigleData[row, ] | |
# Si le poids individuel est supérieur au poids moyen | |
# Le 'paste' permet de transformer la valeur de la variable en string, ce qui est ici nécessaire. | |
if (observation$PoidsInd >= PoidsMoySeigle[paste(observation$DensiteSp)]) { | |
# on ajoute la ligne | |
sdf[nrow(sdf) + 1,] = observation | |
} | |
} | |
# Write CSV in R | |
write.csv(mdf, file = "Moutarde Blanche.csv") | |
write.csv(sdf, file = "Seigle.csv") | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment