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