Planificateur de budget
Fait partie de la section Logique et flux d’exécution du Journey R de Coddy. Leçon 63 sur 64.
Défi
DifficileComplétez budget(lines). La première ligne est l’en-tête month,type,amount et chaque ligne suivante correspond à une entrée, comme 2024-01,income,3000. Une entrée est valide lorsque son type est income ou expense et que son montant est un nombre supérieur à 0 ; ignorez toute autre entrée.
Renvoyez une ligne par mois présent dans les entrées valides, dans l’ordre, 2024-01: income 3000.00, spent 1250.50, saved 1749.50, où saved correspond aux revenus moins les dépenses (un mois sans revenus ou sans dépenses compte 0 pour ceux-ci). Ajoutez ensuite Best month: avec le mois ayant réalisé les économies les plus importantes (le premier en cas d’égalité), puis Skipped: avec le nombre d’entrées ignorées.
Lorsqu’aucune entrée n’est valide, renvoyez uniquement No valid entries et la ligne Skipped.
Le code fourni transmet chaque ligne d’entrée à budget() et affiche chaque ligne renvoyée.
Essayez vous-même
budget <- function(lines) {
# Écrivez votre code ici
character(0)
}
# Code d'entrée/sortie fourni : conservez-le tel quel
input <- suppressWarnings(readLines(file("stdin")))
cat(budget(input), sep = "\n")
Toutes les leçons de Logique et flux d’exécution
1Les chaînes en profondeur
Sous-chaînes avec substr()Mise en forme avec sprintf()Scinder et joindreRechercher dans les chaînesRemplacer du texteRécapitulatif - Créateur de nom d'utilisateur4Matrices
Créer des matricesIndexer des matricesRécapitulatifs des lignes et des colonnesArithmétique matricielleRécapitulatif - Plan de salle7La famille Apply
lapply et sapplyMap et mapplyFilter et FindReduceRécapitulatif - Pipeline de données10Structures de contrôle avancées
La fonction switch()ifelse() vectorisérepeat et breakFonctions récursivesRécapitulatif – Classificateur de notes2Recherches par clé-valeur
Recherches dans des vecteurs nommésVérifier les clésAjouter et supprimer des clésParcourir les nomsRécapitulatif - Bureau des stocks5Projet - Carnet de notes
Ajouter des élèvesEnregistrer les notes3Ensembles et comptage
Valeurs uniquesOpérations sur les ensemblesTests d’appartenanceCompter avec table()Récapitulatif - Invités à l’événement6Les fonctions comme valeurs
Fonctions anonymesPasser des fonctionsRetourner des fonctionsFermetures avec étatRécapitulatif - Règles de remise9Data Frames
Créer des Data FramesColonnes et lignesFiltrer les lignesAjouter et trierRécapitulatif - Rapport des ventes12Projet - Suivi des dépenses
Enregistrer les dépensesDépenses totalesEntraînez-vous par vous-même : Compilateur R en ligne