What is the equivalent of sumproduct function of Excel for two vectors in R?


The sumproduct function in Excel multiply each value of two or more arrays with the corresponding values then add the sum of the result. For example, if we have 1, 2 in A1, A2 in Excel and 2, 2 in B1 and B2 then sumproduct will multiply 1*2 and 2*2 then take the summation of those two multiplications. In R, we have crossprod function for the same.

Examples

 Live Demo

x1<-rnorm(50,1.5)
x1

Output

[1] 1.99359076  1.88748588 0.72095131 3.10185637 -0.90790685 0.51694935
[7] -0.05495242 1.49991243 2.54843446 2.79770387 -0.59328378 1.44738196
[13] 2.31391231 0.92844811 2.45329835 0.70609159 2.23518856  0.61631980
[19] 2.75137005 1.85486279 2.05531035 2.20960910 0.20037395  2.68390848
[25] 1.40389120 0.17282489 0.36633216 2.18996730 -0.10523904 -0.11863699
[31] 1.39480555 3.04977324 4.51243878 2.50746627 2.03817155  3.08036664
[37] 0.39284354 2.59858026 2.77797656 0.94338344 1.03293175  1.46812123
[43] 2.40907064 1.61772641 6.14482972 1.10566435 0.57390910  0.87722282
[49] 1.62433138 1.80906998

Example

 Live Demo

y1<-rnorm(50,2.5)
y1

Output

[1] 1.8783136 2.7331609 4.7371202 3.9985253 2.8102108 3.7087233 1.8897202
[8] 2.3324918 2.3859289 3.6085963 1.2847904 2.9825826 1.8944861 2.8596306
[15] 4.1415533 2.7008292 1.5199610 1.5111808 2.2279718 0.2254175 3.3921581
[22] 2.9906191 1.1403147 2.6683893 3.7104668 2.4567271 4.1465060 2.4379809
[29] 3.1013512 2.5057454 1.3899342 4.0594080 2.9544847 2.9267532 1.5415416
[36] 2.8127391 1.6027450 2.1677937 2.7763609 2.2713097 3.1494273 4.1289289
[43] 2.8311815 2.6957011 2.3890127 1.3183123 1.9293547 3.3658244 2.2184533
[50] 2.1856964

Example

crossprod(x1,y1)

Output

[,1]
[1,] 221.1997

Example

 Live Demo

x2<-rpois(100,2)
x2

Output

[1] 2 0 1 2 1 0 2 0 1 1 2 2 3 2 3 1 2 4 4 1 0 3 2 2 0 2 0 2 1 1 4 4 3 2 0 0 1
[38] 3 2 0 1 2 2 1 6 2 3 3 3 0 3 5 1 2 4 0 2 0 0 3 2 1 1 2 2 3 1 5 2 3 3 1 2 4
[75] 3 2 3 2 4 2 1 1 4 3 1 3 3 1 1 2 1 3 0 3 4 1 3 1 2 3

Example

 Live Demo

y2<-rpois(100,5)
y2

Output

[1] 5 6 3 4 5 3 8 7 6 4 6 7 5 7 6 10 6 6 4 2 1 1 3 4 4
[26] 7 4 6 8 6 5 4 6 7 5 4 7 6 6 3 5 5 7 6 6 5 4 5 3 2
[51] 3 4 10 5 6 3 7 5 6 4 5 3 7 2 8 3 6 2 4 3 4 9 2 6 4
[76] 3 1 6 5 4 5 5 5 3 4 7 6 4 4 5 4 2 8 7 3 5 4 6 4 7

Example

crossprod(x2,y2)

Output

[,1]
[1,] 954

Example

 Live Demo

x3<-runif(50,2,5)
x3

Output

[1] 4.066125 4.753823 4.404160 4.986185 4.123433 4.390743 2.763934 2.751122
[9] 2.188381 4.402746 3.286630 4.485267 3.004045 4.475638 4.382088 4.394354
[17] 2.014214 3.078435 2.781432 2.611495 2.672326 4.700600 4.553896 4.691448
[25] 4.441690 4.278304 4.523280 2.590837 4.312463 4.180315 4.868710 2.495915
[33] 4.608362 2.661993 4.313882 2.302652 4.491288 2.926825 2.148216 4.759026
[41] 2.396023 3.255598 4.739009 3.542550 2.817052 2.977642 3.878959 4.867458
[49] 2.231442 4.950959

Example

 Live Demo

y3<-runif(50,2,10)
y3

Output

[1] 7.845753 4.834397 4.995095 6.552002 4.471001 9.203054 6.124359 6.622755
[9] 3.877650 7.280489 7.774599 2.747195 9.551918 9.056671 6.434740 7.348743
[17] 4.792461 9.166887 8.958969 7.335471 8.918295 5.435485 2.191420 2.603769
[25] 6.093804 8.087972 8.973729 4.278366 9.924628 3.864139 9.443934 3.410300
[33] 7.659189 5.001502 4.241095 9.632373 8.544051 7.156040 4.299191 8.890373
[41] 7.686046 8.845440 7.641526 3.969289 3.926754 3.330756 9.740170 4.345852
[49] 8.746772 5.178304

Example

crossprod(x3,y3)

Output

[,1]
[1,] 1214.499

Example

 Live Demo

x4<-sample(1:10,100,replace=TRUE)
x4

Output

[1] 2 4 10 7 6 6 1 7 7 5 10 1 7 2 3 4 4 3 4 10 6 8 5 1 8
[26] 9 1 8 3 1 7 6 5 8 8 8 2 7 6 6 9 3 8 2 9 7 9 10 6 7
[51] 1 10 1 5 6 1 5 8 9 1 1 5 1 10 1 2 7 1 8 3 5 7 1 10 1
[76] 2 9 10 4 9 3 7 10 8 7 6 4 10 5 2 5 6 5 9 2 3 6 5 1 5

Example

 Live Demo

y4<-sample(1:50,100,replace=TRUE)
y4

Output

[1] 17 37 38 31 6 13 24 38 46 35 14 44 37 40 12 15 10 31 29 33 9 47 49 40 34
[26] 40 9 1 21 30 43 27 31 16 29 2 21 9 45 42 44 6 14 42 9 12 10 42 39 11
[51] 50 31 2 12 47 3 41 19 45 21 42 20 26 13 24 41 38 6 30 22 45 44 22 17 32
[76] 50 43 3 47 34 28 18 12 11 3 33 27 26 35 5 17 36 22 44 33 19 24 32 44 13

Example

crossprod(x4,y4)

Output

[,1]
[1,] 14325

Example

 Live Demo

x5<-runif(50,-5,-2)
x5

Output

[1] -2.864014 -3.920292 -2.697349 -3.547204 -3.203409 -4.408416 -4.046039
[8] -2.307824 -2.026316 -2.471796 -2.572194 -3.986755 -4.363628 -3.635759
[15] -2.082331 -4.251178 -4.681768 -3.034604 -3.418636 -3.981439 -2.494370
[22] -4.450702 -3.123108 -2.693205 -4.557498 -3.379469 -2.610095 -4.637020
[29] -3.876702 -4.587460 -3.603890 -2.903007 -4.404766 -2.155481 -3.569201
[36] -2.292755 -3.353520 -3.583467 -4.595250 -2.439884 -3.363896 -2.014880
[43] -4.517038 -4.252916 -3.634848 -2.152265 -3.678823 -2.939615 -2.467037
[50] -4.190786

Example

 Live Demo

y5<-runif(50,-3,-2)
y5

Output

[1] -2.915089 -2.658054 -2.713909 -2.852047 -2.730487 -2.856746 -2.276689
[8] -2.369880 -2.197784 -2.566198 -2.856807 -2.027856 -2.516569 -2.975913
[15] -2.684511 -2.309696 -2.635481 -2.306488 -2.903054 -2.646775 -2.825036
[22] -2.049512 -2.873639 -2.753928 -2.289014 -2.981482 -2.144614 -2.532343
[29] -2.639120 -2.292755 -2.441756 -2.450644 -2.729074 -2.352912 -2.022934
[36] -2.920817 -2.479174 -2.324256 -2.309613 -2.697988 -2.990217 -2.537785
[43] -2.087993 -2.075586 -2.267299 -2.999600 -2.562218 -2.137688 -2.881335
[50] -2.986426

Example

crossprod(x5,y5)

Output

[,1]
[1,] 430.8493

Updated on: 08-Sep-2020

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements