- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
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
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
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
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
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
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
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
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
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
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
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
Advertisements