Table des matières:
- Ajouter des totaux de lignes et de colonnes
- trim
- Une autre chose que vous avez probablement faite beaucoup dans Excel est de calculer des sommes et des comptes conditionnels avec les fonctions sumif () et countif ().
- Supposons que vous souhaitiez calculer une moyenne conditionnelle du rendement énergétique en mtcars. Vous faites cela avec la fonction mean (). Maintenant, pour obtenir le rendement énergétique pour les voitures de chaque côté d'un seuil de 150 chevaux, essayez ce qui suit:
- Pour obtenir la transposition d'une matrice, utilisez t (): >> t (x) [ 1] [ 2] [ 3] [ 4] [1,] 1 2 3 4 [2,] 5 6 7 8 [3,] 9 10 11 12
- Dans un tableur comme Excel, vous pouvez créer des tables de recherche avec les fonctions vlookup ou une combinaison d'index et de correspondance .
- Utilisation le but chercher et résoudre
- Vous avez un modèle de ventes et de revenus qui fonctionne. Vous pouvez voir immédiatement qu'il y a un point de revenu maximum. Ensuite, utilisez la fonction R optimize () pour trouver la valeur de ce maximum. Pour utiliser optimize (), vous devez lui indiquer quelle fonction utiliser (dans ce cas, revenue ()), ainsi que l'intervalle (dans ce cas, les prix entre 50 et 150). Par défaut, optimize () recherche une valeur minimale, dans ce cas, vous devez lui indiquer de rechercher la valeur maximale: >> optimize (revenue, intervalle = c (50, 150), maximum = TRUE) $ maximum [1] 100 $ objectif [1] 5000
Vidéo: Modèle de journal de trading 2025
La feuille de calcul est probablement l'une des applications PC les plus utilisées - et pour une bonne raison: Les feuilles de calcul facilitent les calculs et autres opérations sur tabulaire Les données. Mais les tableurs posent également certains risques: ils sont faciles à corrompre et très difficiles à déboguer. Les bonnes nouvelles sont, vous pouvez utiliser R pour faire beaucoup des mêmes choses que vous faisiez dans les feuilles de calcul.
Ajouter des totaux de lignes et de colonnes
Une tâche que vous pouvez fréquemment effectuer dans une feuille de calcul consiste à calculer les totaux de ligne ou de colonne. La façon la plus simple d'y parvenir est d'utiliser les fonctions rowSums () et colSums (). De même, utilisez rowMeans () et colMeans () pour calculer les moyennes.
Essayez-le sur l'ensemble de données intégré iris. Tout d'abord, supprimez la cinquième colonne, car elle contient du texte qui décrit l'espèce d'iris: >> iris. num <- iris [-5]
Calculez ensuite la somme et la moyenne pour chaque colonne:
Formatage des nombres
Vous pouvez utiliser format () pour transformer vos nombres en joli texte, prêt pour l'impression. Cette fonction prend un certain nombre d'arguments pour contrôler le format de votre résultat. En voici quelques-unes:
trim
:Une valeur logique. Si FALSE, il ajoute des espaces à droite-justifie le résultat. Si TRUE, il supprime les espaces de début.
-
chiffres : Nombre de chiffres significatifs à afficher.
-
nsmall : Nombre minimal de chiffres après la virgule décimale.
-
De plus, vous contrôlez le format du séparateur décimal avec la décimale. marque, la marque entre les intervalles avant le point décimal avec grand. marque, et la marque entre les intervalles
après le point décimal avec petit. marque. Par exemple, vous pouvez imprimer le numéro 12345. 6789 avec une virgule comme point décimal, des espaces comme grande marque et des points comme petit format: >> (12345. 6789, chiffres = 9, décimal. mark = ",", + grand mark = "", petit mark = ".", petit intervalle = 3) [1] "12 345, 678. 9" Comme exemple plus pratique, calculer les moyennes de certaines colonnes dans mtcars et ensuite imprimer les résultats avec deux chiffres après la virgule décimale, utilisez ce qui suit: >> x format (x, chiffres = 2, nsmall = 2) mpg cyl disp hp "20.09 "" 6. 19 "" 230. 72 "" 146. 69 " Notez que le résultat n'est plus un nombre mais une chaîne de texte. Alors, soyez prudent lorsque vous utilisez la mise en forme des nombres - cela devrait être la dernière étape de votre flux de travail de reporting.
Si vous êtes familier avec la programmation dans des langages similaires à C ou C ++, vous pouvez également trouver la fonction sprintf () utile. Cette enveloppe vous permet de coller votre numéro formaté directement dans une chaîne.
Voici un exemple de conversion de nombres en pourcentages: >> x sprintf ("%. 1f %%", 100 * x) [1] "50. 0% "" 51. 0% "" 52. 0% "" 53. 0% "" 54. 0% "" 55. 0% "
Voici ce qu'il fait: Le premier argument de sprintf () indique le format - dans ce cas,"%. 1f %% ". L'argument format utilise des littéraux spéciaux qui indiquent que la fonction doit remplacer ce littéral par une variable et appliquer une mise en forme. Les littéraux commencent toujours par le symbole%. Donc, dans ce cas,%. 1f signifie formater la première valeur fournie en tant que valeur de point fixe avec un chiffre après le point décimal, et %% est un littéral qui signifie imprimer un%.
Pour mettre en forme certains nombres comme devise - dans ce cas, dollars US - utilisez: >> ensemble. graine (1)> x sprintf ("$% 3. 2f", x) [1] "$ 265. 51" "$ 372. 12" "$ 572. 85" "$ 908. 21" "$ 201. 68 "
La fonction sprintf () vous donne un moyen alternatif de coller la valeur de n'importe quelle variable dans une chaîne: >> prix sprintf ("% s coût $% 3. 2f ", truc, prix) [1] "Pain coût $ 2. 10" "cookies coûtent $ 4. 00"
Ce qui se passe ici est que, parce que vous avez fourni deux vecteurs (chacun avec deux éléments) à sprintf (), votre résultat est un vecteur avec deux éléments. R parcourt les éléments et les place dans les littéraux sprintf ().
Vous pouvez tout faire avec paste () et format () avec sprintf (), donc vous n'avez pas vraiment besoin de l'utiliser. Mais quand vous le faites, cela peut simplifier votre code.
Tri des données
Pour trier les données dans R, vous utilisez les fonctions sort () ou order ().
Pour trier les mtcars de trame de données dans l'ordre croissant ou décroissant de la colonne hp, utilisez: >> avec (mtcars, mtcars [order (hp),])> avec (mtcars, mtcars [order (hp, décroissant = TRUE),])
Faire des choix avec if
Les tableurs vous donnent la possibilité d'effectuer toutes sortes de "Que faire si? "Analyses. Une façon de faire est d'utiliser la fonction if () dans une feuille de calcul.
R a aussi la fonction if (), mais elle est surtout utilisée pour le contrôle de flux dans vos scripts. Comme vous voulez généralement effectuer un calcul sur un vecteur entier dans R, il est généralement plus approprié d'utiliser la fonction ifelse ().
Voici un exemple d'utilisation de ifelse () pour identifier les voitures ayant un rendement énergétique élevé dans l'ensemble de données mtcars: >> mtcars <- transformer (mtcars, + mpgClass = ifelse (mpg mtcars [mtcars $ mpgClass == "Élevé",]
Calcul des totaux conditionnels
Une autre chose que vous avez probablement faite beaucoup dans Excel est de calculer des sommes et des comptes conditionnels avec les fonctions sumif () et countif ().
Vous pouvez faire la même chose dans l'un des deux façons dans R:
Utilisez ifelse.
Calculez simplement la mesure d'intérêt sur un sous-ensemble de vos données.
Supposons que vous souhaitiez calculer une moyenne conditionnelle du rendement énergétique en mtcars. Vous faites cela avec la fonction mean (). Maintenant, pour obtenir le rendement énergétique pour les voitures de chaque côté d'un seuil de 150 chevaux, essayez ce qui suit:
avec (mtcars, mean (mpg)) [1] 20. 09062> avec (mtcars, mean (mpg [hp avec (mtcars, mean (mpg [hp> = 150])) [1] 15. 40667
Compter le nombre d'éléments dans un vecteur équivaut à demander sa longueur, ce qui signifie que la fonction Excel countif () a un R équivalent en longueur (): >> avec (mtcars, longueur (mpg [hp> 150])) [1] 13
Transposition de colonnes ou de lignes
Parfois, vous devez transposer vos données Dans R, la fonction de transposition d'une matrice est t (): >> xx [1] [2] [3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12
Pour obtenir la transposition d'une matrice, utilisez t (): >> t (x) [1] [2] [3] [4] [1,] 1 2 3 4 [2,] 5 6 7 8 [3,] 9 10 11 12
Vous pouvez également utiliser t () pour transposer des trames de données, mais soyez prudent lorsque vous Le résultat d'une transposition est toujours une matrice (ou un tableau), car les tableaux ont toujours un seul type de variable, tel que numérique ou caractère, les types de variable de vos résultats peuvent ne pas être ce que vous attendez.
Recherche de valeurs uniques ou dupliquées
-
Pour identifier toutes les valeurs uniques de vos données, utilisez la fonction unique (). Essayez de trouver les valeurs uniques du nombre de cylindres dans mtcars: >> unique (mtcars $ cyl) [1] 6 4 8
-
Parfois, vous voulez savoir quelles valeurs de vos données sont en double. Selon votre situation, ces doublons seront valides, mais parfois les doublons peuvent indiquer des problèmes d'entrée de données.
La fonction d'identification des doublons est dupliquée (). Dans le jeu de données intégré iris, il y a une ligne dupliquée dans la ligne 143. Essayez-le vous-même:
dupes head (dupes) [1] FALSE FALSE FALSE FALSE FALSE> qui (dupes) [1] 143> iris [Dupes,] Sepal. Longueur Sepal. Largeur Pétale. Longueur Pétale. Largeur Espèce 143 5. 8 2. 7 5. 1 1. 9 virginica
Comme le résultat de duplicated () est un vecteur logique, vous pouvez l'utiliser comme index pour supprimer des lignes de vos données. Pour ce faire, utilisez l'opérateur de négation - le point d'exclamation (comme dans! Dupes): >> iris [! dupes,]> nrow (iris [! dupes,]) [1] 149
Travailler avec des tables de recherche
Dans un tableur comme Excel, vous pouvez créer des tables de recherche avec les fonctions vlookup ou une combinaison d'index et de correspondance.
Dans R, il peut être pratique d'utiliser merge () ou match (). La fonction match () renvoie un vecteur avec les positions des éléments correspondant à votre valeur de recherche.
Par exemple, pour trouver l'emplacement de l'élément "Toyota Corolla" dans les noms de ligne de mtcars, essayez ce qui suit:> index [1] 20> mtcars [index, 1: 4] mpg cyl disp hp Toyota Corolla 33. 9 4 71. 1 65
Utilisation des tableaux croisés dynamiques
Pour les tableaux simples dans R, vous pouvez utiliser la fonction tapply () pour obtenir des résultats similaires à ceux des tableaux croisés dynamiques dans Excel.Voici un exemple d'utilisation de tapply () pour calculer la moyenne hp pour des voitures avec différents nombres de cylindres et d'engrenages: >> avec (mtcars, tapply (hp, liste (cyl, gear), mean)) 3 4 5 4 97. 0000 76. 0 102. 0 6 107. 5000 116. 5 175. 0 8 194. 1667 NA 299. 5
Pour des tableaux légèrement plus complexes - c'est-à-dire des tableaux avec plus de deux facteurs de classification croisée - utiliser l'agrégat () fonction: >> agrégat (hp ~ cyl + engrenage + am, mtcars, mean) cyl engrenage am hp 1 4 3 0 97. 00000 2 6 3 0 107. 50000 3 8 3 0 194. 16667 4 4 4 0 78. 50000 5 6 4 0 123. 00000 6 4 4 1 75. 16667 7 6 4 1 110. 00000 8 4 5 1 102. 00000 9 6 5 1 175. 00000 10 8 5 1 299. 50000
Utilisation le but chercher et résoudre
Dans R, la fonction optimize () fournit un mécanisme assez simple pour optimiser les fonctions.
Imaginez que vous êtes le directeur des ventes d'une entreprise et que vous devez définir le meilleur prix pour votre produit. En d'autres termes, trouvez le prix d'un produit qui maximise les revenus.
En économie, un simple modèle de prix stipule que les gens achètent moins d'un produit donné lorsque le prix augmente. Voici une fonction très simple qui a ce comportement: >> ventes <- fonction (prix) {100 - 0. 5 * prix}
Le revenu attendu est alors simplement le produit du prix et des ventes attendues: >> revenue <- function (price) {price * ventes (price)}
Vous pouvez utiliser la fonction curve () pour tracer des fonctions continues. Cela prend une fonction en entrée et produit un tracé. Essayez de tracer le comportement des ventes et des revenus en utilisant la fonction curve (), variant le prix de 50 $ à 150 $: >> ancienne courbe (ventes, de = 50, à = 150, xname = "price", main = "Ventes ")> Courbe (revenus, de = 50, à = 150, xname =" prix ", main =" Revenu ")> par (oldpar)
Vos résultats devraient ressembler à ceci.
Un modèle de ventes et de revenus attendus.
Vous avez un modèle de ventes et de revenus qui fonctionne. Vous pouvez voir immédiatement qu'il y a un point de revenu maximum. Ensuite, utilisez la fonction R optimize () pour trouver la valeur de ce maximum. Pour utiliser optimize (), vous devez lui indiquer quelle fonction utiliser (dans ce cas, revenue ()), ainsi que l'intervalle (dans ce cas, les prix entre 50 et 150). Par défaut, optimize () recherche une valeur minimale, dans ce cas, vous devez lui indiquer de rechercher la valeur maximale: >> optimize (revenue, intervalle = c (50, 150), maximum = TRUE) $ maximum [1] 100 $ objectif [1] 5000
Et voilà. Charge un prix de 100 $, et s'attendre à obtenir 5 000 $ de revenus.
