Comment effectuer une multiplication par éléments dans R



R est excellent pour effectuer une multiplication élément par élément entre deux objets.

Les exemples suivants montrent comment effectuer une multiplication élément par élément entre divers objets dans R.

Exemple 1 : multiplier deux vecteurs

Le code suivant montre comment effectuer une multiplication élément par élément avec deux vecteurs :

#create vectors
a <- c(1, 3, 4, 5)
b <- c(2, 2, 3, 3)

#perform element-wise multiplication
a*b

[1]  2  6 12 15

Voici comment les résultats ont été calculés :

  • 1 * 2 = 2
  • 3*2 = 6
  • 4*3 = 12
  • 5*3 = 15

Exemple 2 : Multiplier la trame de données et le vecteur

Le code suivant montre comment effectuer une multiplication élément par élément avec une trame de données et un vecteur :

#define data frame
df <- data.frame(a=c(1, 3, 4, 5),
                 b=c(2, 2, 3, 3))

#view data frame
df

  a b
1 1 2
2 3 2
3 4 3
4 5 3

#define vector
x <- c(2, 5, 5, 8)

#multiply data frame by vector
df*x

   a  b
1  2  4
2 15 10
3 20 15
4 40 24

Exemple 3 : multiplier deux trames de données

Le code suivant montre comment effectuer une multiplication élément par élément entre deux trames de données :

#define data frames
df1 <- data.frame(a=c(1, 3, 4, 5),
                  b=c(2, 2, 3, 3))
df2 <- data.frame(c=c(6, 2, 2, 2),
                  d=c(1, 7, 4, 9))

#multiply two data frames
df1*df2

   a  b
1  6  2
2  6 14
3  8 12
4 10 27

Notez que le bloc de données résultant a la même taille que les deux blocs de données que nous avons multipliés.

Notez également que nous recevrons une erreur si nous tentons de multiplier deux trames de données de tailles différentes :

#define data frames of unequal sizes
df1 <- data.frame(a=c(1, 3, 4, 5),
                  b=c(2, 2, 3, 3))

df2 <- data.frame(c=c(6, 2, 2),
                  d=c(1, 7, 4))

#attempt to multiply two data frames
df1*df2

Error in Ops.data.frame(df1, df2) : 
  ‘*’ only defined for equally-sized data frames

Ressources additionnelles

Comment effectuer une multiplication matricielle dans R
Comment convertir une matrice en vecteur dans R
Comment convertir une colonne de bloc de données en vecteur dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *