web-dev-qa-db-fra.com

Soulever au pouvoir en R

C'est une question de débutant.

  1. Quelle est la différence entre ^ Et **? Par exemple:

    2 ^ 10
    
    [1] 1024
    
    2 ** 10
    
    [1] 1024
    
  2. Existe-t-il une fonction telle que power(x,y)?

32
Nick

1: Aucune différence. Il est conservé pour permettre à l'ancien code S de continuer à fonctionner. Ceci est documenté une "Note" dans ?Math

2: Oui, mais vous le savez déjà:

`^`(x,y)
#[1] 1024

Dans R, les opérateurs mathématiques sont vraiment des fonctions que l'analyseur prend en charge de réorganiser les arguments et les noms de fonction pour vous permettre de simuler la notation infix mathématique ordinaire. Également documenté à ?Math.

Edit: Permettez-moi d’ajouter que savoir comment R gère les opérateurs infixes (c’est-à-dire deux fonctions d’argument) est très important pour comprendre l’utilisation de l’infix fondamental "[[" et "" fonctionne comme second argument (fonctionnel) à lapply et sapply:

> sapply( list( list(1,2,3), list(4,3,6) ), "[[", 1)
[1] 1 4
> firsts <- function(lis) sapply(lis, "[[", 1)
> firsts( list( list(1,2,3), list(4,3,6) ) )
[1] 1 4
33
42-