Pourquoi utiliser R pour votre travail statistique?
Programmation orientée objet
Programmation fonctionnelle
1.1 Comment exécuter R
1.1.1 Mode interactif
1.1.2 Mode de lot
1.2 Une première session R
1.3 Introduction aux fonctions
1.3.1 Portée variable
1.3.2 Arguments par défaut
1.4 Prévisualisation de certaines structures de données R importantes
1.4.1 Vecteurs, le R Workhorse
1.4.2 Chaînes de caractères
1.4.3 Matrices
1.4.4 Listes
1.4.5 Cadres de données
1.4.6 Classes
1.5 Exemple étendu: analyse de régression de l'examen des notes
1.6 Démarrage et arrêt
1.7 Obtenir de l'aide
1.7.1 La fonction help
1.7.2 La fonction example
1.7.3 Si vous ne savez pas tout ce que vous cherchez
1.7.4 Aide pour d'autres sujets
1.7.5 Aide pour le mode Batch
1.7.6 Aide sur Internet
VECTEURS
2.1 Scalars, vecteurs, matrices et matrices
2.1.1 Ajout et suppression d'éléments vectoriels
2.1.2 Obtenir la longueur d'un vecteur
2.1.3 Matrices et tableaux en tant que vecteurs
2.2 Déclarations
2.3 Recyclage
2.4 Opérations vectorielles communes
2.4.1 Opérations arithmétiques et logicielles vectorielles
2.4.2 Indexation vectorielle
2.4.3 Générer des vecteurs utiles avec: Opérateur
2.4.4 Générer des séquences vectorielles avec seq ()
2.4.5 Constantes vectorielles répétées avec rep ()
2.5 Utilisation de any () et de all ()
2.6 Opérations vectorisées
2.6.1 Vector In, Vector Out
2.6.2 Vector In, Matrix Out
2.7 Valeurs NA et NULL
2.7.1 Utilisation de NA
2.7.2 Utilisation de NULL
2.8 Filtrage
2.8.1 Génération d'indices de filtrage
2.8.2 Filtrage avec le sous-ensemble () Fonction
2.8.3 La fonction de sélection qui ()
2.9 A Vectorisé if-then-else: la fonction ifelse ()
2.10 Test de l'égalité des vecteurs
2.11 Noms d'éléments vectoriels
2.12 Plus sur c ()
3 MATRICES ET TABLEAUX
3.1 Création de matrices
3.2 Opérations générales de la matrice
3.2.1 Effectuer des opérations d'algèbre linéaire sur des matrices
3.2.2 Indice Matrix
3.2.3 Exemple étendu: Manipulation d'image
3.2.4 Filtrage sur matrices
3.3 Application des fonctions aux lignes et aux colonnes Matrix
3.3.1 Utilisation de la fonction apply ()
3.3.2 Exemple étendu: recherche de valeurs aberrantes
3.4 Ajout et suppression de lignes et de colonnes matricielles
3.4.1 Modification de la taille d'une matrice
3.4.2 Exemple étendu
3.5 Difference Vector / Matrix
3.6 Éviter la réduction involontaire de la taille
3.7 Nommer les lignes et les colonnes matricielles
3.8 Matrices de dimension supérieure
4 LISTES
4.1 Création de listes
4.2 Opérations de la liste générale
4.2.1 Indexer la liste
4.2.2 Ajout et suppression d'éléments de liste
4.2.3 Obtenir la taille d'une liste
4.3 Accès aux composants et aux valeurs de la liste
4.4 Application des fonctions aux listes
4.4.1 Utilisation des fonctions lapply () et sapply ()
4.4.2 Exemple étendu: Texte Concordance, suite
4.4.3 Exemple étendu: Retour aux données d'Abalone
4.5 Listes récursives
5 CADRES DE DONNÉES
5.1 Création de cadres de données
5.1.1 Accès aux cadres de données
5.1.2 Exemple étendu: Analyse de régression des notes d'examen
5.2 Autres opérations analogues aux matrices
5.2.1 Extraction de cadres de sous-données
5.2.2 Plus sur le traitement des valeurs NA
5.2.3 Utilisation des fonctions rbind () et cbind () et des alternatives
5.2.4 Appliquer postuler ()
5.3 Fusion de cadres de données
5.4 Application des fonctions aux cadres de données
5.4.1 Utilisation de lapply () et sapply () sur Data Frames
5.4.2 Exemple étendu: application de modèles de régression logistique
FACTEURS ET TABLEAUX
6.1 Facteurs et niveaux
6.2 Fonctions communes utilisées avec des facteurs
6.2.1 La fonction tapply ()
6.2.2 La division () Fonction
6.2.3 La fonction by ()
6.3 Travailler avec les tableaux
6.3.1 Opérations liées à la matrice / tableau dans les tableaux
6.3.2 Exemple étendu: Extraction d'un sous-système
6.3.3 Exemple étendu: trouver les plus grandes cellules dans un tableau
6.4 Autres fonctions liées au facteur et à la table
6.4.1 L'ensemble () Fonction
6.4.2 La fonction coupure ()
7 STRUCTURES DE PROGRAMMATION R
7.1 Énoncés de contrôle
7.1.1 Boucles
7.1.2 Looping Over Nonvector Sets
7.1.3 if-else
7.2 Opérateurs et valeurs arithmétiques et booléennes
7.3 Valeurs par défaut pour les arguments
7.4 Valeurs de retour
7.4.1 Décider d'appeler explicitement le retour ()
7.4.2 Retour des objets complexes
7.5 Les fonctions sont des objets
7.6 Environnement et portée Iss
7.6.1 L'environnement de haut niveau
7.6.2 La hiérarchie de la portée
7.6.3 Plus sur ls ()
7.6.4 Les fonctions ont (presque) aucun effet secondaire
7.6.5 Exemple étendu: une fonction pour afficher le contenu d'un Cadre d'appel
7.3 Pas de pointeurs dans R
7.4 Écriture à l'étage
7.8.1 Ecrire à des non-locaux avec l'opérateur de superassignation
7.8.2 Ecriture sur non-localisé avec assign
7.5 Recursion
7.6 Fonctions de remplacement
7.10.1 Qu'est-ce qui est considéré comme une fonction de remplacement?
7.7 Outils pour composer le code de fonction
7.11.1 Éditeurs de texte et environnements de développement intégrés
7.11.2 La fonction edit ()
7.8 Écriture de vos propres opérations binaires
7.9 Fonctions anonymes
8 FAIRE UN MATHÉNALITÉ ET DES SIMULATIONS EN R 189
8.1 Fonctions mathématiques 189
8.1.1 Exemple étendu: Calcul d'une probabilité 190
8.1.2 Sommes cumulatives et produits 191
8.1.3 Minima et Maxima 191
8.1.4 Calcul 192
8.2 Fonctions pour les distributions statistiques 193
8.3 Tri 194
8.4 Opérations d'algèbre linéaire sur les vecteurs et les matrices 196
8.4.1 Exemple étendu: Vector Cross Product 198
8.4.2 Exemple étendu: trouver des distributions fixes de
Chaînes Markov 199
8.5 Set Operations 202
8.6 Programmation de simulation dans R 204
8.6.1 Génératrices à variation aléatoire intégrée 204
8.6.2 Obtenir le même flux aléatoire dans les courses répétées 205
8.6.3 Exemple étendu: une simulation combinatoire 205
9 PROGRAMMATION ORIENTÉE À L'OBJET 207
9.1 S3 Classes 208
9.1.1 S3 Fonctions génériques 208
9.1.2 Exemple: OOP dans le lm () Modèle linéaire Fonction 208
9.1.3 Trouver les implémentations de méthodes génériques 210
9.1.4 Ecriture de classes S3 212
9.1.5 Utilisation de l'héritage 214
9.1.6 Exemple étendu: une classe pour l'entreposage triangulaire supérieur
Matrices 214
9.1.7 Exemple étendu: une procédure pour la régression polynomiale 219
9.2 S4 Classes 222
9.2.1 Ecriture de classes S4 223
9.2.2 Implémentation d'une fonction générique sur une classe S4 225
9.3 S3 Versus S4 226 9.4 Gestion de vos objets 226
9.4.1 Liste de vos objets avec la fonction ls () 226
9.4.2 Suppression d'objets spécifiques avec la fonction rm () 227
9.4.3 Enregistrement d'une collection d'objets avec la sauvegarde () Fonction 228
9.4.4 "Qu'est-ce que c'est?" 228
9.4.5 L'existence () Fonction 230
10 ENTRÉE / SORTIE 231
10.1 Accès au clavier et au moniteur 232
10.1.1 Utilisation de la fonction scan () 232
10.1.2 Utilisation de readline () Fonction 234
10.1.3 Impression sur l'écran 234
10.2 Lecture et écriture de fichiers 235
10.2.1 Lecture d'un cadre de données ou d'une matrice à partir d'un fichier 236
10.2.2 Lecture de fichiers texte 237
10.2.3 Introduction aux connexions 237
10.2.4 Exemple étendu: Lecture des fichiers de recensement PUMS 239
10.2.5 Accès aux fichiers sur les machines distantes via les URL 243
10.2.6 Ecriture dans un fichier 243
10.2.7 Obtention d'informations sur les fichiers et les répertoires 245
10.2.8 Exemple étendu: Additionnez le contenu de nombreux fichiers 245
10.3 Accès à Internet 246
10.3.1 Vue d'ensemble de TCP / IP 247
10.3.2 Douilles dans R 247
10.3.3 Exemple étendu: implémentation parallèle R 248
11 MANIPULATION STRING 251
11.1 Vue d'ensemble des fonctions de manipulation des chaînes 251
11.1.1 grep () 252
11.1.2 nchar () 252
11.1.3 coller () 252
11.1.4 sprintf () 253
11.1.5 substr () 253
11.1.6 strsplit () 253
11.1.7 regexpr () 253
11.1.8 gregexpr () 254
11.2 Expressions régulières 254
11.2.1 Exemple étendu: Test d'un nom de fichier pour un suffrage donné 255
11.2.2 Exemple étendu: formation de noms de fichiers 256
11.3 Utilisation de String Utilities dans l'outil de débogage edtdbg 257
GRAPHIQUE 261
12.1 Création de graphiques 261
12.1.1 The Workhorse of R Base Graphics: L'intrigue () Fonction 262
12.1.2 Ajout de lignes: la fonction abline () 263
12.1.3 Démarrage d'un nouveau graphique tout en gardant les anciens 264
12.1.4 Exemple étendu: deux estimations de densité sur le même graphe 264
12.1.5 Exemple étendu: plus sur l'exemple de régression polynomiale .... 266
12.1.6 Ajout de points: les points () Fonction 269
12.1.7 Ajout d'une légende: la légende () Fonction 270
12.1.8 Ajout de texte: le texte () Fonction 270
12.1.9 Points de repérage: le localisateur () Fonction 271
12.1.10 Restauration d'une parcelle 272
12.2 Personnalisation des graphiques 272
12.2.1 Modification des tailles de caractères: l'option Cex 272
12.2.2 Modification de la portée des axes: les options xlim et ylim 273
12.2.3 Ajout d'un polygone: le polygone () Fonction 275
12.2.4 Points de lissage: les fonctions lowess () et loess () 276
12.2.5 Graphique des fonctions explicites 276
12.2.6 Exemple étendu: agrandissement d'une partie d'une courbe 277
12.3 Enregistrer des graphiques dans des fichiers 280
12.3.1 R Graphics Devices 280
12.3.2 Enregistrement du graphique affiché 281
12.3.3 Fermeture d'un périphérique graphique R 281
12.4 Création de tracés tridimensionnels 282
13 DEBUGGING 285
13.1 Principes fondamentaux de débogage 285
13.1.1 L'essence du débogage: le principe de confirmation 285
13.1.2 Démarrer petit 286
13.1.3 Déboguer dans un Modulaire, Top-Do
13.1.4 Antibugging 287
13.2 Pourquoi utiliser un outil de débogage? 287
13.3 Utilisation des installations de débogage R 288
13.3.1 Démarrage unique avec les fonctions debug () et navigateur () 288
13.3.2 Utilisation des commandes du navigateur 289
13.3.3 Définition des points d'arrêt 289
13.3.4 Suivi avec trace () Fonction 291
13.3.5 Effectuer des vérifications après une panne avec le retrait () et le débogueur () Fonction 291
13.3.6 Exemple étendu: Deux sessions de débogage complètes 292
13.4 Déménagement dans le monde: outils de débogage plus pratiques 300
13.5 Assurer la cohérence dans le code de simulation de débogage 302
13.6 Syntaxe et erreurs d'exécution 303
13.7 Exécution de GDB sur R lui-même 303
14 AMÉLIORATION DE LA PERFORMANCE: VITESSE ET MÉMOIRE 305
14.1 Rédaction Fast R Code 306
14.2 The Dreaded for Loop 306
14.2.1 Vectorisation pour Speedup 306
14.2.2 Exemple étendu: Atteindre une meilleure vitesse dans une simulation de Monte Carlo 308
14.2.3 Exemple étendu: génération d'une matrice Powers 312
14.3 Programmation fonctionnelle et problèmes de mémoire 314
14.3.1 Problèmes d'attribution de vecteur 314
14.3.2 Problèmes de copie-sur-changement 314
14.3.3 Exemple étendu: Eviter la copie de mémoire 315
14.4 Utilisation de Rprof () pour trouver des points lents dans votre code 316
14.4.1 Surveillance avec Rprof () 316
14.4.2 Fonctionnement de Rprof () 318
14.5 Compilation de code d'octet 320
14.6 Oh Non, les données ne correspondent pas à la mémoire! 320
14.6.1 Chunking 320
14.6.2 Utilisation des paquetages R pour la gestion de la mémoire 321
15 INTERFACER R AUTRES LANGUES 323
15.1 Ecriture de fonctions C / C ++ à appeler à partir de R 323
15.1.1 Quelques préliminaires R-to-C / C ++ 324
15.1.2 Exemple: Extraction de Subdiagonals à partir d'une matrice carrée 324
15.1.3 Compilation et exécution du code 325
15.1.4 Débogage du code R / C 326
15.1.5 Exemple étendu: prédiction de la série chronologique à durée dissimulée 327
15.2 Utilisation de R à partir de Python 330
15.2.1 Installation de RPy 330
15.2.2 RPy Syntaxe 330
16 PARALLELLE R 333
16.1 Problème de liaison mutuelle 333
16.2 Présentation du forfait neige 334
16.2.1 Code de neige en cours 335
16.2.2 Analyse de la neige Code 336
16.2.3 Combien la vitesse peut-elle être atteinte? 337
16.2.4 Exemple étendu: K-Means Clustering 338
16.3 Resort à C 340
16.3.1 Utilisation de machines multicast 340
16.3.2 Exemple étendu: problème de liaison mutuelle dans OpenMP 341
16.3.3 Exécution du code OpenMP 342
16.3.4 Analyse du code OpenMP 343
16.3.5 Autre OpenMP Pragmas 344
16.3.6 Programmation GPU 345
16.4 Considérations générales relatives au rendement 345
16.4.1 Sources de frais généraux 346
16.4.2 Embarrassant les applications parallèles et celles qui ne sont pas 347
16.4.3 Static Versus Dynamic Task Assignment 348
16.4.4 Alchimie du logiciel: transformer les problèmes généraux en
Embarrassement Parallel Ones 350
16.5 Débogage Parallel R Code 351
A INSTALLATION R 353
A.1 Téléchargement de R de CRAN 353
A.2 Installation à partir d'un gestionnaire de paquetages Linux 353
A. 3 Installation de la source 354
B INSTALLATION ET UTILISATION DES EMBALLAGES 355
B. 1 Principes de base du paquet 355
B.2 Chargement d'un paquetage à partir de votre disque dur 356
B.3 Téléchargement d'un paquet sur le Web 356
B.3.1 Installation automatique des paquetages 356
B.3.2 Installation de paquets manuellement 357
B.4 Liste des fonctions dans un package 358
Il existe une multitude de ressources disponibles pour vous aider à apprendre davantage sur R. Un gros travail a été fait pour que R soit auto-documenté. Nous allons jetter un coup d'oeil dans certaines installations d'aide intégrées de R, puis sur celles disponibles sur l'Internet.
1 La fonction help ()
Pour obtenir de l'aide en ligne, tapez help (). Par exemple, pour obtenir des informations sur le seq (), tapez ceci:
> help (seq)
Le raccourci pour help () est un point d'interrogation (?):
> ? Seq
Les caractères spéciaux et certains mots réservés doivent être entre lorsqu'ils sont utilisés avec la fonction help (). Par exemple, vous devez taper ce qui suit pour obtenir l’aide sur l’opérateur < :
>? "<"
Et pour voir ce que le manuel en ligne a à dire sur les boucles, entrez ceci:
>? "for"
1.7.2 La fonction example ()
Chacune des entrées d'aide contient des exemples. Une caractéristique vraiment intéressante de R est-ce la fonction example () exécutera ces exemples pour vous. Voici une illustration:
> Example (seq)
Seq> seq (0, 1, length.out = 11)
[1] 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0
Seq> seq (stats :: rnorm (20))
[1] 1234567891011121314151617181920
Seq> seq (1, 9, par = 2) # match
[1] 13579
Seq> seq (1, 9, par = pi) # reste ci-dessous
[1] 1.000000 4.141593 7.283185
Seq> seq (1, 6, par = 3)
[1] 14
Seq> seq (1.575, 5.125, par = 0.05)
[1] 1.575 1.625 1.675 1.725 1.775 1.825 1.875 1.925 1.975 2.025 2.075 2.125
[13] 2.175 2.225 2.275 2.325 2.375 2.425 2.475 2.525 2.575 2.625 2.675 2.725
[25] 2.775 2.825 2.875 2.925 2.975 3.025 3.075 3.125 3.175 3.225 3.275 3.325
[37] 3.375 3.425 3.475 3.525 3.575 3.625 3.675 3.725 3.775 3.825 3.875 3.925
[49] 3.975 4.025 4.075 4.125 4.175 4.225 4.275 4.325 4.375 4.425 4.475 4.525
[61] 4,575 4,625 4,675 4,725 4,775 4,825 4,875 4,925 4,975 5,025 5,075 5,125
Seq> seq (17) # même que 1:17
[1] 1234567891011121314151617
La fonction seq () génère différents types de séquences numériques dans une progression arithmétique. Fonctionnement
L'exemple (seq) a entraîné la sortie de R exemples de seq () devant nos yeux.
Imaginez combien cela peut être utile pour les graphiques! Si vous êtes intéressé à voir quelle est l'une des excellentes fonctions graphiques de R, l’exemple () fonction vous donnera une illustration "graphique".
Pour voir un exemple rapide et très agréable, essayez d'exécuter les opérations suivantes commander:
> example (persp)
Cela affiche une série d'exemples de graphiques pour la fonction persp (). Un de ceux-ci est illustré à la figure 1-2. presse
Entrez dans la console R lorsque vous êtes
Prêt à passer à la prochaine. Notez que le code pour chaque exemple est affiché
Dans la console, afin que vous puissiez expérimenter en peaufinant les arguments.
Figure 1-2: un des exemples de perspicacité ()
1.7.3 Si vous ne savez pas tout ce que vous recherchez
Vous pouvez utiliser la fonction help.search () pour effectuer une recherche Google-style à travers
La documentation de R. Par exemple, disons que vous avez besoin d'une fonction pour générer des aléas
Varie selon les distributions normales multivariées. Pour déterminer lequel
Si vous le souhaitez, vous pouvez essayer quelque chose comme ceci:
> Help.search ("multivariable normal")
Cela produit une réponse contenant cet extrait:
Mvrnorm (MASS) Simuler à partir d'un Multivariable Normal
Distribution
Vous pouvez voir que la fonction mvrnorm () effectue le travail, et c'est dans le paquet
MASSE.
Il existe également un raccourci
Help.search ():
> ?? "multivariable normal"
1.7.4 Aide pour d'autres sujets
Les fichiers d'aide interne de R incluent plus que des pages pour des fonctions spécifiques.
Par exemple, la section précédente a mentionné que la fonction
Mvrnorm () is
Dans le colis
MASSE. Vous pouvez obtenir des informations sur la fonction en entrant
ce:
>? Mvrnorm
Et vous pouvez également vous renseigner sur l'ensemble du paquet en tapant ceci:
> Help (package = MASS)
L'aide est également disponible pour les sujets généraux. Par exemple, si vous êtes intéressé
Pour en savoir plus sur les fichiers, tapez ce qui suit:
>? Fichiers
Cela vous donne des informations sur un certain nombre de fonctions de manipulation de fichiers,
tel que
File.create ().
Voici d'autres sujets:
Arithmétique
Comparaison
Contrôle
Rendez-vous
Extrait
Math
Mémoire
N / A
NUL
NumericaConstants
Paren
Citations
Commencez
Syntaxe
Mise en route 23
Cela produit une réponse contenant cet extrait:
Mvrnorm (MASS) Simuler à partir d'un Multivariable Normal
Distribution
Vous pouvez voir que la fonction mvrnorm () effectue le travail, et c'est dans le paquet
MASSE.
Il existe également un raccourci
Help.search ():
> ?? "multivariable normal"
1.7.4 Aide pour d'autres sujets
Les fichiers d'aide interne de R incluent plus que des pages pour des fonctions spécifiques.
Par exemple, la section précédente a mentionné que la fonction
Mvrnorm () is
Dans le colis
MASSE. Vous pouvez obtenir des informations sur la fonction en entrant
ce:
>? Mvrnorm
Et vous pouvez également vous renseigner sur l'ensemble du paquet en tapant ceci:
> Help (package = MASS)
L'aide est également disponible pour les sujets généraux. Par exemple, si vous êtes intéressé
Pour en savoir plus sur les fichiers, tapez ce qui suit:
>? Fichiers
Cela vous donne des informations sur un certain nombre de fonctions de manipulation de fichiers,
tel que
File.create ().
Voici d'autres sujets:
Arithmétique
Comparaison
Contrôle
Rendez-vous
Extrait
Math
Mémoire
N / A
NUL
NumericaConstants
Paren
Citations
Commencez
Syntaxe
Mise en route 23
Chapitre 1
Vous pourriez trouver utile de parcourir ces sujets, même sans
Objectif spécifique à l'esprit.
1.7.5 Aide pour le mode batch
Rappelez-vous que R a des commandes par lots qui vous permettent d'exécuter une commande directement
Du shell de votre système d'exploitation. Pour obtenir de l'aide sur une commande de lot particulière,
vous pouvez taper:
R Commande CMD - aide
Par exemple, pour apprendre toutes les options associées à la commande INSTALL
(Discuté à l'annexe B), vous pouvez taper ceci:
R CMD INSTALLER - Aider
1.7.6 Aide sur Internet
Il existe de nombreuses excellentes ressources sur R sur Internet. Voici quelques-uns:
• Les manuels du projet R sont disponibles à partir de la page d'accueil R,
Http://www.r-project.org/. Cliquez sur les manuels.
• Les différents moteurs de recherche R sont répertoriés sur la page d'accueil R. Cliquez sur Rechercher.
• Le
Sos offre une recherche très sophistiquée de matériaux R. Voir
Annexe B pour obtenir des instructions sur l'installation des paquetages R.
• J'utilise souvent le moteur de recherche RSeek: http://www.rseek.org/.
• Vous pouvez publier vos questions R à r -help, le serveur de liste R. Vous pouvez obtenir
Des informations à ce sujet et d'autres serveurs de liste R à http://www.r-project.org/
Mail.html. Vous pouvez utiliser diverses interfaces. J'aime Gmane (http: // www
.gmane.org /).
En raison de son nom à une seule lettre, R est difficile à rechercher pour l'usage général
Moteurs de recherche tels que Google. Mais il existe des astuces que vous pouvez employer.
Une approche consiste à utiliser le critère de filtrage de Google. Pour rechercher des scripts R
(Les fichiers ayant un .R suf fi x) concernant, par exemple, les permutations, entrez ceci:
Type de fichier: permutations R -rebol
Le -rebol demande à Google d'exclure des pages avec le mot "rebol", car le
Le langage de programmation REBOL utilise le même suffixe.
Le réseau d'archives R complet (CRAN), à http: //cran.r-project
.org /, est un référentiel de code R contribué par l'utilisateur et fait ainsi un bon
Terme de recherche Google. La recherche de "lm CRAN", par exemple, vous aidera
Trouver du matériel sur R
Fonction lm ().
1.6 Démarrage et arrêt
Comme celle de nombreuses applications logicielles sophistiquées, le comportement de R peut être
Personnalisé à l'aide de fichiers de démarrage. En outre, R peut enregistrer tout ou partie d'une session,
Tel qu'un enregistrement de ce que vous avez fait, à un fichier de sortie. S'il existe des commandes R
Que vous souhaitez exécuter au début de chaque session R, vous pouvez
Placez-les dans un fichier appelé .Rprofil localisé soit dans votre répertoire personnel
Ou dans le répertoire à partir duquel vous utilisez R. Le dernier répertoire est
A cherché ce fichier premier, qui vous permet d'avoir des profils personnalisés pour des particuliers
projets.
Par exemple, pour configurer l'éditeur de texte que R invoque si vous appelez
Edit (), vous
Peut utiliser une ligne dans .Rprofil comme celui-ci (si vous êtes sur un système Linux):
Options (éditeur = "/ usr / bin / vim")
La fonction de options R () est utilisée pour la configuration, c'est-à-dire pour modifier divers
paramètres. Vous pouvez spécifier le chemin d'accès complet à votre propre éditeur, en utilisant la notation
(Barres obliques ou barres obliques) appropriées à votre système d'exploitation.
Comme autre exemple, dans le fichier .Rprofile sur ma machine Linux à la maison, j'ai
La ligne suivante:
.libPaths ("/ home / nm / R")
Cela ajoute automatiquement un répertoire contenant tous mes paquets auxiliaires
Mon chemin de recherche R.
Comme la plupart des programmes, R a la notion de votre répertoire de travail actuel.
Au démarrage, ce sera le répertoire à partir duquel vous avez lancé R, si vous êtes
En utilisant Linux ou un Mac. Dans Windows, ce sera probablement votre dossier Documents.
Si vous faites référence à des fichiers pendant votre session R, ils seront supposés être
Dans ce répertoire. Vous pouvez toujours vérifier votre répertoire actuel en tapant le
Suivant:
> Getwd ()
Vous pouvez modifier votre répertoire de travail en appelant setwd () avec le
Le répertoire souhaité comme argument cité. Par exemple,
> Setwd ("q")
Définirait le répertoire de travail sur q.
Lorsque vous passez par une session R interactive, R enregistre la com-
Les mands que vous soumettez. Si vous répondez oui à la question "Enregistrer l'image de l'espace de travail?"
Lorsque vous quittez, R sauvegardera tous les objets que vous avez créés dans cette session
Et les restaurer dans votre prochaine session. Cela signifie que vous n'avez pas besoin de refaire
Le travail à partir de zéro pour continuer où vous l'avez laissé.
L'espace de travail enregistré se trouve dans un fichier nommé .Rdata, qui se trouve soit
Dans le répertoire à partir duquel vous avez invoqué la session R (Linux) ou dans la R
Répertoire d'installation (Windows). Vous pouvez consulter le fichier .Ristory, qui
Enregistre vos commandes, pour vous rappeler comment cet espace de travail a été créé.
Si vous voulez un démarrage / arrêt rapide, vous pouvez ignorer le chargement de tous ceux
Les fichiers et la sauvegarde de votre session à la fin en exécutant R avec le
vanille
option:
R --vanilla
D'autres options se situent entre vanille et "chargez tout". Vous pouvez trouver
Plus d'informations sur les fichiers de démarrage en interrogeant l'installation d'aide en ligne de R, comme
Suit:
>? Démarrage
1.7 Obtenir de l'aide
Une multitude de ressources sont disponibles pour vous aider à en apprendre davantage sur R. These
Inclure plusieurs installations au sein de R lui-même et, bien sûr, sur le Web.
Beaucoup de travail a été fait pour que R soit auto-documenté. Nous allons regarder
Dans certaines installations d'aide intégrées de R, puis sur celles disponibles sur le
L'Internet.
1.5 Exemple étendu: Analyse de régression des notes d'examen
Pour notre prochain exemple, nous aborderons une brève analyse de régression statistique.
Il n'y a pas beaucoup de programmation réelle dans cet exemple, mais cela illustre comment
Certains types de données que nous venons de discuter sont utilisés, y compris les objets S3 de R.
En outre, cela servira de base à plusieurs de nos exemples de programmation dans
Chapitres suivants.
J'ai un fichier, ExamsQuiz.txt, contenant des notes d'une classe que j'ai enseignée. Ici
Sont ses premières lignes:
2 3.3 4
3,3 2 3,7
4 4,3 4
2,3 0 3,3
...
Les chiffres correspondent aux notes de lettres sur une échelle de quatre points; 3.3 est un
B +, par exemple. Chaque ligne contient les données pour un étudiant, consistant en
La note d'examen de mi-parcours, la note d'examen fi nale et le quiz moyen
qualité. Il pourrait être intéressant de voir à quel point les notes de mi-parcours et de quiz
Prévoir la note de l'élève lors de l'examen final.
Lisons d'abord le fichier de données:
> Examsquiz <- read.table ("ExamsQuiz.txt", header = FALSE)
Notre fichier n'inclut pas une ligne d'en-tête nommant les variables dans chaque
Dossier d'étudiant, nous avons donc spécifié
Header = FALSE dans l'appel de fonction. C'est un
Exemple d'argument par défaut, dont nous avons parlé plus tôt. En fait, le
Valeur par défaut de
L'argument d'en-tête est déjà FALSE (que vous pouvez vérifier par
Consulter l'aide en ligne de R pour
Read.table ()), donc nous n'avons pas besoin de spécifier cela
Mais il est plus clair si nous le faisons.
Nos données sont maintenant en
Examsquiz, qui est un objet R de la classe data.frame.
> Classe (examsquiz)
[1] "data.frame"
Juste pour vérifier que le fichier a été lu correctement, regardons le
Premières lignes:
> Head (examsquiz)
V1 V2 V3
1 2.0 3.3 4.0
2 3.3 2.0 3.7
3 4,0 4,3 4,0
4 2,3 0,0 3,3
5 2,3 1,0 3,3
6 3,3 3,7 4,0
En raison d'un en-tête pour les données, R a nommé les colonnes V1, V2 et V3. Rangée
Les chiffres apparaissent sur la gauche. Comme vous pourriez penser, ce serait mieux
Avoir un en-tête dans notre fichier de données, avec des noms significatifs comme
Examen1. Au plus tard
Exemples, nous allons généralement indiquer des noms.
Essayons de prédire le score de l'examen 2 (indiqué dans la deuxième colonne de
Examsquiz) de l'examen 1 (première colonne):
Lma <- lm (examsquiz [, 2] ~ examsquiz [, 1])
L'appel de la fonction lm () (pour le modèle linéaire) ici indique à R que cette prédiction
équation:
Examen prévu 2 = β
0
+ Β
Examen 1
Ici, β
0
Et β
1
1
Sont des constantes à estimer à partir de nos données. En d'autre
Paroles, nous établissons une ligne droite pour les paires (examen 1, examen 2) dans notre
Les données. Cela se fait par une méthode classique des moindres carrés. (Ne vous inquiétez pas si
Vous n'avez pas d'arrière-plan dans ce domaine.)
Notez que les scores de l'examen 1, qui sont stockés dans la première colonne de notre
Cadre de données, sont collectivement appelés
Examsquiz [, 1]. Omission du premier
L'indice (le numéro de la ligne) signifie que nous parlons d'une colonne entière
Du cadre. Les scores de l'examen 2 sont également référencés. Donc, notre appel à
Lm ()
Ci-dessus prédit la deuxième colonne d'examsquiz dès le premier.
Nous aurions également pu écrire
Lma <- lm (examsquiz $ V2 ~ examsquiz $ V1)
Rappelant qu'un cadre de données est juste une liste dont les éléments sont des vecteurs. Ici le
Les colonnes sont les
V1, V2 et V3 de la liste.
Les résultats sont retournés par
Lm () sont maintenant dans un objet que nous avons stocké dans
La variable
Lma. C'est une instance de la classe lm. Nous pouvons énumérer ses composants
en appelant
les attributs():
> Attributs (lma)
$ Noms
[1] "coefficients" "résidus" "effets" "rang"
[5] "fitted.values" "assigner" "qr" "df.residual"
[9] "xlevels" "appel" "termes" "modèle"
$ Classe
[1] "lm"
Chapitre 1
Comme d'habitude, une comptabilité plus détaillée peut être obtenue via l'appel str (lma).
Les valeurs estimées de β
Sont stockés dans les coefficients de lma $. Vous pouvez afficher
En tapant le nom à l'invite.
je
Vous pouvez également enregistrer certaines saisies en ouvrant les noms des composants,
Tant que vous ne réduisez pas le nom d'un composant au point d'être ambigu.
Par exemple, si une liste comprend les composants
Xyz, xywa et xbcde,
Alors les deuxième et troisième composants peuvent être abrégés
Xyw et xb,
respectivement. Donc, ici, nous pourrions taper ce qui suit:
> Lma $ coef
(Intercept) examsquiz [, 1]
1,1205209 0,5899803
Puisque les coefficients de lma $ sont un vecteur, l'impression est simple. Mais considérez quoi
Se produit lorsque vous imprimez l'objet
Lma elle-même:
> Lma
Appel:
Lm (formula = examsquiz [, 2] ~ examsquiz [, 1])
Coefficients:
(Intercept) examsquiz [, 1]
1,121 0,590
Pourquoi R n'a-t-il imprimé que ces éléments et non les autres composants d'Ima?
La réponse est que ici R utilise les
La fonction print (), qui est une autre
Exemple de fonctions génériques. En tant que fonction générique,
Imprimer () effectivement les mains
Du travail à une autre fonction dont le travail consiste à imprimer des objets de classe
Lm-
la
Print.lm () - et c'est ce que cette fonction affiche.
Nous pouvons obtenir une impression plus détaillée du contenu de
Lma en appelant
résumé(),
La fonction générique discutée précédemment. Il déclenche un appel à
Summary.lm () derrière les scènes, et nous obtenons un résumé spécifique de la régression:
> Résumé (lma)
Appel:
Lm (formula = examsquiz [, 2] ~ examsquiz [, 1])
Résidus:
Min 1Q médian 3Q Max
-3,4804 -0,1239 0,3426 0,7261 1,2225
Coefficients:
Estimation Std. Erreur t valeur Pr (> | t |)
(Intercept) 1.1205 0.6375 1.758 0.08709.
Examsquiz [, 1] 0.5900 0.2030 2.907 0.00614
**
...
Un certain nombre d'autres fonctions génériques sont définies pour cette classe. Voir
L'aide en ligne pour
Lm () pour plus de détails. (L'utilisation de la documentation en ligne de R est
Discuté à la section 1.7.)
Pour estimer une équation de prédiction pour l'examen 2 à partir de l'examen 1
Et les scores du quiz, nous utiliserions le
+ Notation:
> Lmb <- lm (examsquiz [, 2] ~ examsquiz [, 1] + examsquiz [, 3])
Notez que le + ne signifie pas que nous calculons la somme des deux quantités.
Ce n'est qu'un délimiteur dans notre liste de variables prédictives.
R est un langage structuré en bloc comme C, C ++, Python, Perl, etc. Comme vous l'avez fait déjà vu, les blocs sont délimités par des accolades, bien que les accolades soient facultatives si le bloc se compose d'une simple déclaration. Les déclarations sont séparées par des caractères de nouvelle ligne ou par des points-virgules.
Dans cette partie, nous allons couvrir la structure de base de R en tant que langage de programmation. Nous allons passer en revue quelques détails supplémentaires sur les boucles, ensuite nous allons aller tout droit dans les fonctions, qui occuperont la majeure partie de cette partie.
aaaaaaaaaaa
Comme détaillé dans l'introduction, R est un langage de programmation open source extrêmement polyvalent pour la statistique et la science des données. Il est largement utilisé dans tous les domaines où il existe des données - entreprises, industrie, gouvernement, médecine, universités, etc.
Dans ce chapitre, vous allez découvrir R-comment l'invoquer, ce qu'il peut faire et quels fichiers il utilise. Nous couvrirons juste assez pour vous donner les bases dont vous avez besoin pour travailler à travers les exemples dans les prochains chapitres, où les détails seront présentés.
R peut déjà être installé sur votre système, si votre employeur ou université l'a mis à la disposition des utilisateurs. Sinon, voir l'annexe A.
pour les instructions d'installation.
aaaaaaaaaaaaaaaa
Matrices et Tableaux
Les listes dans R
R est un langage structuré en bloc comme C, C ++, Python, Perl, etc. Comme vous l'avez fait déjà vu, les blocs sont délimités par des accolades, bien que les accolades sont facultatives si le bloc se compose d'une simple déclaration. Les déclarations sont séparées par des caractères de nouvelle ligne ou, éventuellement, par des points-virgules.
Dans cette partie, nous allons couvrir les structures de base de R en tant que langage de programmation. Nous allons passer en revue quelques détails supplémentaires sur les boucles, puis continuer tout droit dans le sujet des fonctions, qui occuperont la majeure partie de cette partie.
Comme pour beaucoup langages de script, vous ne "déclarez" pas les variables dans R.
Premier pas dans les graphes avec R