Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 31-01-2017 20:26:08

guillaume22
Membre
Inscription : 26-04-2015

Rscript et comptabilité perso

Bonsoir,
j'étais en quête d'un logiciel de comptabilité. Je suis sous dwm ou associé, donc un système light. Après essais de différents programmes, je n'étais pas très satisfait de cela. En ligne de commande, je n'ai pas trouvé quelque chose de simple. Ce que je voulais, c'est avoir un listing par mois mais aussi par catégorie pour avoir une idée et pouvoir comparer un peu par mois. Rien de compliqué donc. Après réflexion, je me suis dit que la compta c'est un peu de stat finalement et je connais R (mooc extrément bien de paris 5 d'ailleurs), du coup je me suis fait un script qui importe un fichier csv, découpe l'objet par mois, fait un listing par mois, le montant par mois et catégorie et le montant total par mois.

Voici un fichier d'exemple : à nommer compte.csv absolument si vous changez le nom, il est à changer dans le script r


Mois;Libellé;Catégorie;Montant
01;Auchan;Courses;-50,5
01;Cinéma;Loisirs;-20,5
01;Musée;Loisirs;-40
01;Leclerc;Courses;-20
01;Salaire G;Paies;2000
02;Salaire M;Paies;3000
02;Théatre;Loisirs;-120
 



Script r

# Résumé Compte année 2017

# Données de base
compte <- read.csv2("compte.csv")
janvier <- subset(compte, Mois== "1", 1:4)
février <- subset(compte, Mois== "2", 1:4)
mars <- subset(compte, Mois== "2", 1:4)
avril <- subset(compte, Mois== "2", 1:4)
mai <- subset(compte, Mois== "2", 1:4)
juin <- subset(compte, Mois== "2", 1:4)
juillet <- subset(compte, Mois== "2", 1:4)
aout <- subset(compte, Mois== "2", 1:4)
septembre <- subset(compte, Mois== "2", 1:4)
octobre <- subset(compte, Mois== "2", 1:4)
novembre <- subset(compte, Mois== "2", 1:4)
décembre <- subset(compte, Mois== "2", 1:4)

print("Résumé de janvier")
janvier
tapply(janvier$Montant, janvier$Catégorie, sum)
sum(janvier$Montant)
print("---------------------------------------")
print("Résumé de février")
février
tapply(février$Montant, février$Catégorie, sum)
sum(février$Montant)
print("---------------------------------------")
print("Résumé de mars")
mars
tapply(mars$Montant, mars$Catégorie, sum)
sum(mars$Montant)
print("---------------------------------------")
print("Résumé de avril")
avril
tapply(avril$Montant, avril$Catégorie, sum)
sum(avril$Montant)
print("---------------------------------------")
print("Résumé de mai")
mai
tapply(mai$Montant, mai$Catégorie, sum)
sum(mai$Montant)
print("---------------------------------------")
print("Résumé de juin")
juin
tapply(juin$Montant, juin$Catégorie, sum)
sum(juin$Montant)
print("---------------------------------------")
print("Résumé de juillet")
juillet
tapply(juillet$Montant, juillet$Catégorie, sum)
sum(juillet$Montant)
print("---------------------------------------")
print("Résumé de aout")
aout
tapply(aout$Montant, aout$Catégorie, sum)
sum(aout$Montant)
print("---------------------------------------")
print("Résumé de septembre")
septembre
tapply(septembre$Montant, septembre$Catégorie, sum)
sum(septembre$Montant)
print("---------------------------------------")
print("Résumé de octobre")
octobre
tapply(octobre$Montant, octobre$Catégorie, sum)
sum(octobre$Montant)
print("---------------------------------------")
print("Résumé de novembre")
novembre
tapply(novembre$Montant, novembre$Catégorie, sum)
sum(novembre$Montant)
print("---------------------------------------")
print("Résumé de décembre")
décembre
tapply(décembre$Montant, décembre$Catégorie, sum)
sum(décembre$Montant)
print("---------------------------------------")
 



Le script est à mettre dans le même dossier que le csv
Puis lancer le

Rscript essai.r



On peut mettre dans un fichier texte.
L'apprentissage de R est facilité je trouve par l'emploi de Rstudio qui permet d'autres choses aussi.

Ce truc est histoire de ne pas me prendre la tête mais de pouvoir quand même jeter un coup d'oeil pour certains trucs et de faire un suivi clair
Bon compte

Dernière modification par guillaume22 (31-01-2017 21:38:24)


La connaissance est pour l'humanité un magnifique moyen pour s'anéantir elle-même.       Nietzsche  (1844-1900)

Hors ligne

#2 31-01-2017 20:30:42

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 3.16.0-4-amd64 - 3.16.39-1
(G)UI : gnome 1:3.14+3
Inscription : 21-10-2008

Re : Rscript et comptabilité perso

Sympa ça, merci !
... character0282.gif

"Théo et Adama te rappellent pourquoi Zyed et Bouna couraient…"
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

En ligne

#3 31-01-2017 21:42:31

guillaume22
Membre
Inscription : 26-04-2015

Re : Rscript et comptabilité perso

De rien, c'est le principe wink
J'ai corrigé le script il y avait une erreur ; la prochaine étape c'est le r markdown pour un truc plus joli.
Je pense en faire un dépot git pour faire profiter plus largement. Avec peut être un make, un truc nouveau pour moi, je découvre petit à petit.

La connaissance est pour l'humanité un magnifique moyen pour s'anéantir elle-même.       Nietzsche  (1844-1900)

Hors ligne

#4 01-02-2017 00:19:35

Watael
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 3.16.0-4-amd64
(G)UI : xmonad, i3, dwm
Inscription : 19-01-2017

Re : Rscript et comptabilité perso

salut,

tu peux nous en dire un peu plus ?
sur le(s) paquet(s) à installer, ce que font les commandes dans le script...

mais c'est long comme script, il n'y a pas moyen de "factoriser" les opérations identiques ?

en GNU/Awk :

$ gawk -F';' 'BEGIN{PROCINFO["sorted_in"]="@val_num_desc"; mois["01"] = "Janvier"; mois["02"]= "Février"}FNR==1{next}{ sub(",",".",$4);compte[$1][$3]+=$4 }END{for(i in compte){print "résumé de",mois[i]; for(ii in compte[i])printf("\t%s: %.2f\n",ii,compte[i][ii])}}' compte.csv

résumé de Janvier
  Paies: 2000.00
  Loisirs: -60.50
  Courses: -70.50
résumé de Février
  Paies: 3000.00
  Loisirs: -120.00
$

Dernière modification par Watael (01-02-2017 00:45:41)

Hors ligne

#5 01-02-2017 01:13:48

guillaume22
Membre
Inscription : 26-04-2015

Re : Rscript et comptabilité perso

Salut,
les paquets à installer c'est R-base, c'est tout.
Le script R est certes long mais une boucle for ferait ralentir les choses au niveau de l'exécution, ce n'est pas vraiment adapté en R.

Après les commandes, subset sélectionne une partie de l'objet compte en sélectionnant les colonnes et tapply applique la somme du montant en fonction de la catégorie.

Chaque script peut faire ce truc comme tu le fais, je fais avec les outils que je connais wink

Dernière modification par guillaume22 (01-02-2017 01:26:18)


La connaissance est pour l'humanité un magnifique moyen pour s'anéantir elle-même.       Nietzsche  (1844-1900)

Hors ligne

#6 01-02-2017 01:37:56

Watael
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 3.16.0-4-amd64
(G)UI : xmonad, i3, dwm
Inscription : 19-01-2017

Re : Rscript et comptabilité perso

oui, bien sûr, mais, quand même, un marteau pneumatique pour poser quelques agrafes... hmm

après, ça peut faire une démonstration simple en guise d'introduction à ce que peut accomplir R.
(là, c'est mon côté optimiste qui parle)

http://www.r-tutor.com/ semble intéressant.

Dernière modification par Watael (01-02-2017 01:53:28)

Hors ligne

#7 01-02-2017 10:13:18

guillaume22
Membre
Inscription : 26-04-2015

Re : Rscript et comptabilité perso

Ce programme je l'ai donc je mets à profit mes connaissances pour mes besoins. R est aussi simple que d'autres trucs. Je pense avoir la même impression devant ton gawk que toi sur r ; chacun son truc.

La connaissance est pour l'humanité un magnifique moyen pour s'anéantir elle-même.       Nietzsche  (1844-1900)

Hors ligne

#8 01-02-2017 10:56:36

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : Rscript et comptabilité perso

Bonjour guillaume22, smolski et Watael

Watael, dans son message #4 a écrit :

tu peux nous en dire un peu plus ?
sur le(s) paquet(s) à installer, ce que font les commandes dans le script...


Pour compléter la réponse de guillaume22
voir aussi :

https://wiki.debian.org/R

https://cran.r-project.org

Installation sur debian : https://cran.r-project.org/bin/linux/debian/

Manuels : https://cran.r-project.org/manuals.html

=======
[Hors sujet, quoi que…]

Voir aussi : /usr/share/doc/libslang2/slang.txt.gz

[/Hors sujet, quoi que…]

Dernière modification par MicP (01-02-2017 11:13:54)

Hors ligne

#9 01-02-2017 13:34:30

Watael
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 3.16.0-4-amd64
(G)UI : xmonad, i3, dwm
Inscription : 19-01-2017

Re : Rscript et comptabilité perso

ce n'est pas un problème de complexité ou de maniabilité du langage.
R est destiné à faire des statistiques, ce qui inclus des additions, soit, mais pour une petite partie.
c'est comme mettre un statisticiens à la caisse de McDo.
awk, en traitant un fichier csv, n'est pas sous-utilisé.

je peux me décrotter le nez avec les doigts, mais c'est quand même plus intéressant de les voir faire de l'origami.

Hors ligne

#10 01-02-2017 14:24:42

guillaume22
Membre
Inscription : 26-04-2015

Re : Rscript et comptabilité perso

Un des meilleurs cours est le mooc de Paris 5. De la théorie et de la pratique, je l'avais fait l'année dernière. Les sources en français sont déjà plus que correctes.

La connaissance est pour l'humanité un magnifique moyen pour s'anéantir elle-même.       Nietzsche  (1844-1900)

Hors ligne

#11 02-02-2017 00:57:01

guillaume22
Membre
Inscription : 26-04-2015

Re : Rscript et comptabilité perso

Pour ceux que ca interesse, j'ai écrit un script en Rmd. Dites moi si jamais, il inclut : un listing, la somme des montants puis la somme par catégorie ainsi que le pourcentage de la somme sur les revenus, le tout par mois. Il faut rstudio aussi en plus de r-base.

La connaissance est pour l'humanité un magnifique moyen pour s'anéantir elle-même.       Nietzsche  (1844-1900)

Hors ligne

Pied de page des forums