Skip to content

Instantly share code, notes, and snippets.

@SimonGenin
Created May 25, 2019 09:01
Show Gist options
  • Save SimonGenin/f58561363ef34b70312328509bcdd44e to your computer and use it in GitHub Desktop.
Save SimonGenin/f58561363ef34b70312328509bcdd44e to your computer and use it in GitHub Desktop.
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