Exécuter un code en R

a marqué ce sujet comme résolu.

Bonjour,

J’ai un code en R qu’on m’a donné que je dois executer avec un .CSV (les données y sont dedans) pour générer des graphes. Comment est-ce qu’on peut exécuter un code en R le plus facilement possible ? (J’ai lu sur le net, RStudio mais il tourne pas sur ma machine…)

Merci d’avance!

Du coup, j’ai téléchargé la "Console R" (voir lien). J’ai fais "Open Document" et y ait mis mon doc .R qui s’ouvre bien. Puis je suis retourné dans la console R (en suivant les infos du lien donné) et j’ai fais source(file="NomDeMonFichier.R") et il me retourne une erreur (i.e. Error in file(filename, "r", encoding = encoding) : cannot open the connection In addition: Warning message: In file(filename, "r", encoding = encoding) : cannot open file ’NomDeMonFichier.R’: No such file or directory ). Une idée?

+0 -0

Il faut que le fichier en question (ton fichier R) soit a l’endroit où tu ouvres ta console. Et si je ne dis pas de bêtise il faut aussi que tu ai l’option local à TRUE (utiliser le path relatif depuis où le script est appelé et non depuis l’environnement utilisateur).

1
 source(file="NomDeMonFichier.R", local = TRUE) 

Normalement ça devrait marcher.

+0 -0

J’imagine que tu as utilisé "l’interface graphique". Le problème c’est que quand tu ouvre un fichier, ton répertoire de travail ne change pas. Or ton script R tente d’ouvrir un fichier avec un chemin relatif, mais puisque ton répertoire de travail ne coïncide pas avec l’emplacement de ton fichier R, tu n’arrive pas à charger ton fichier.

Donc au choix, soit tu reste sur l’interface graphique R, auquel cas il faudra changer ton repertoire de travail : soit avec setwd, soit fichier > changer espace de travail. Ou alors tu utilises la ligne de commande (je te conseille cette approche) : soit tu source ton fichier R depuis une console R dans le bon répertoire de travail(getwd() pour connaitre le répertoire courant), soit Rscript monfichier.R depuis ton terminal (dans dossier où se trouve ton fichier).

J’imagine que tu as utilisé "l’interface graphique". Le problème c’est que quand tu ouvre un fichier, ton répertoire de travail ne change pas. Or ton script R tente d’ouvrir un fichier avec un chemin relatif, mais puisque ton répertoire de travail ne coïncide pas avec l’emplacement de ton fichier R, tu n’arrive pas à charger ton fichier.

Oui, c’est exactement mon problème je pense. Par contre j’ai pas trouvé comment faire (désolé je suis assez mauvais en informatique, c’est pas mon domaine :( ).

Ce que j’ai essayé pas à pas:

Approche 1

  1. Lancer la console R

  2. File > Open Document > MonFichier.R (ça me l’ouvre dans une nouvelle fenêtre à côté de la console R)

  3. Allez dans la console et faire

1
source(file="/Users/MonCompte/Desktop/DataScript/NomDeFichier.R", local = TRUE) 
  1. Cette fois, ça a l’air d’être OK mais ça ne marche pas. L’erreur qu’il me sort: Error in library(dplyr) : there is no package called ’dplyr’ (effectivement j’utilise ce package de R et d’autres…)

Approche 2

  1. J’ouvre le Terminal (sur Mac)

  2. Je tape "script R" (il me dit Script started, output file is R)

  3. Je tape /Users/MonCompte/Desktop/DataScript/NomDeFichier.R -> il me répond "Permission denied".

Désolé si je suis pas très à l’aise avec l’organisation des fichiers dans un ordi et les commandes sur le Terminal :p J’apprends!

J’espère qu’il y a assez de détails :-)

Edit: J’ai essayé d’installer les 3 package que j’utilise, i.e. j’importe

1
library(dplyr);library(ggplot2);library(investr)

Mais il me sort à chaque fois des nouveaux package non-installés (ex: bindrcpp, Rcpp, R6, …) alors que je les appelle pas.

Bon, j’ai appelé tous les package qu’il me demandait même si je pense pas les utiliser mais maintenant il me dis "cannot open file ’FileNameData .csv’: No such file or directory" (fichier qui contient les données). Ce qui m’étonne c’est qu’il faut préciser aussi le chemin exact dans le code du coup ? Pas moyen de faire plus simple ? ;)

Edit 2:

Ça l’air d’aller mieux en tout cas avec les packages installés et le chemin pour qu’il puisse lire le fichier CSV. Cependant, quand je lance dans la console, voilà ce qu’il m’affiche maintenant:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Attaching package: 'dplyr'

The following objects are masked from 'package:stats':

    filter, lag

The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union

Waiting for profiling to be done...

Ce qui est normalement normal d’après ce que j’ai pu lire sur le net. Cependant, il me sort pas les figures que je lui demande de plot (j’ai attendu pour au moins 5 mins)… Faut-il faire quelque chose en plus dans la console pour cela ? Ou alors est-ce qu’il les stocke quelque part d’autre?

Je met le code que j’utilise pour plotter (sans le reste du code ça fait peut-être pas sens) :

1
2
3
P1 <- ggplot(DataX,aes(x=DNAsol,y=DNAprot)) + geom_point()
P1 <- P1 + geom_line(data=Prediction,aes(x=DNAsol,y=fit),colour="red",size=1)
P1 <- P1 + geom_ribbon(data=Prediction,aes(ymin=lwr,ymax=upr),alpha=0.3,colour="red")

A noter que ça marche chez une autre personne qui l’avait utilisé par le passé mais je sais pas s’il faisait quelque chose en plus dans la console pour afficher les graphes…

+0 -0

Si je ne dis pas bêtise R doit te fournir un fichier de sortie dans le dossier de ton script où tu retrouvera les graphes (je ne sais plus si c’est automatique ou si il faut activer une option pour cela par contre).

+1 -0

Si je ne dis pas bêtise R doit te fournir un fichier de sortie dans le dossier de ton script où tu retrouvera les graphes (je ne sais plus si c’est automatique ou si il faut activer une option pour cela par contre).

Demandred

C’est ce que je me suis dis. Malheureusement, rien dans ce dossier-là (j’ai rien activé de particulier par contre!). Ces fichiers ont-il un nom spécifique (pour chercher dans le Finder) d’après vous?

Si tu lance ton script avec Rscript c’est normal que rien ne s’affiche, il faut que tu enregistre ton graphique dans un fichier. Si tu lance ton code en mode interactif, c’est à dire avec source() depuis la console R, il faut que tu demande à R d’évaluer ton objet représentant ton graphique, en tapant P1 (le nom de ta variable) dans la console.

Oui ! Merci ! J’ai oublié d’appeler mon objet :-( … Est-ce que tu as une idée de comment inclure une légende avec ggplot2 ? J’ai regardé sur le net mais aucun exemple ne m’a vraiment aidé… Pour le moment j’ai compris comment changer les titres (+ ggtitle("Mon Titre") + labs(x="xLabel",y="yLabel") ) mais j’ai pas trouvé une fonction pour légender mais deux courbes (qui sont sur le même objet P1).

Fais voir ton code et ton jeu de données, ce sera surement plus simple pour t’aider. Habituellement ggplot se débrouille pour afficher une légende en accord avec ce que tu affiche. Il est probable que si ggplot ne t’affiche rien c’est qu’une légende n’est pas nécessaire. Sinon, tu peux forcer ggplot à t’afficher une légende avec l’option show.legend=TRUE (ou FALSE pour ne rien afficher) dans les fonction geom_*.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte