How to find the sum of division in R if zero exists in the vectors?


To find the sum of division if zero exists in the vectors, we need to assign NA to zeros in both the vectors and then use the sum function with na.rm set to TRUE. For example, if we have two vectors x and y that contains some zeros then we can divide x by y using the below commands −

x[x==0]<-NA
y[y==0]<-NA
sum(x/y,na.rm=TRUE)

Example

Live Demo

> x<-sample(0:9,100,replace=TRUE)
> x

Output

[1] 3 3 5 1 7 1 6 2 2 1 4 6 0 6 3 1 2 9 3 2 6 7 7 6 7 4 1 8 3 6 6 2 6 4 0 4 3
[38] 9 1 3 4 0 5 4 6 0 3 5 3 2 4 1 2 2 6 5 6 2 8 7 2 0 1 4 2 9 9 3 0 9 8 3 8 6
[75] 0 4 8 1 6 5 9 4 8 2 3 9 9 6 1 9 0 0 5 1 6 7 4 6 8 5

Example

Live Demo

> y<-sample(0:9,100,replace=TRUE)
> y

Output

[1] 1 5 3 1 9 1 3 8 9 0 1 7 3 2 3 3 2 9 3 1 9 5 5 2 5 4 4 7 4 5 9 1 9 9 4 2 3
[38] 0 5 1 9 1 8 7 1 9 3 7 9 9 7 1 3 5 7 9 0 0 1 9 2 3 8 2 0 4 6 7 7 2 3 5 9 5
[75] 4 0 4 6 3 4 8 3 9 9 9 3 5 6 1 2 6 5 5 2 1 6 3 2 1 1

Example

> sum(x/y)
[1] Inf
> x[x==0]<-NA
> y[y==0]<-NA
> x

Output

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

Example

> y

Output

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

Example

> sum(x/y,na.rm=TRUE)

Output

[1] 133.4123

Example

Live Demo

> x1<-sample(0:9,20,replace=TRUE)
> x1

Output

[1] 4 4 8 5 7 4 6 6 4 7 0 0 2 9 0 4 8 9 8 4

Example

Live Demo

> y1<-sample(0:9,20,replace=TRUE)
> y1

Output

[1] 6 2 0 7 1 1 3 5 9 1 1 7 1 6 4 5 1 5 7 4

Example

> x1[x1==0]<-NA
> y1[y1==0]<-NA
> x1

Output

[1] 4 4 8 5 7 4 6 6 4 7 NA NA 2 9 NA 4 8 9 8 4

Example

> y1

Output

[1] 6 2 NA 7 1 1 3 5 9 1 1 7 1 6 4 5 1 5 7 4

Example

> sum(x1/y1,na.rm=TRUE)

Output

[1] 41.26825

Example

Live Demo

> x2<-sample(0:50,200,replace=TRUE)
> x2

Output

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

Example

Live Demo

> y2<-sample(0:50,200,replace=TRUE)
> y2

Output

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

Example

> x2[x2==0]<-NA
> y2[y2==0]<-NA
> x2

Output

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

Example

> y2

Output

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

Example

> sum(x2/y2,na.rm=TRUE)

Output

[1] 415.8512

Example

Live Demo

> x3<-sample(c(rnorm(5),0),80,replace=TRUE)
> x3

Output

[1] 0.7030833 0.7030833 2.4352556 0.0000000 -0.7432770 -0.7432770
[7] -0.3303050 -0.2555678 0.0000000 -0.2555678 -0.3303050 0.7030833
[13] -0.7432770 -0.7432770 2.4352556 0.0000000 -0.3303050 -0.3303050
[19] -0.7432770 -0.3303050 -0.7432770 2.4352556 -0.2555678 -0.2555678
[25] -0.3303050 -0.7432770 -0.7432770 -0.7432770 0.7030833 0.0000000
[31] -0.2555678 0.0000000 2.4352556 2.4352556 -0.7432770 -0.7432770
[37] 0.7030833 0.0000000 2.4352556 -0.7432770 -0.3303050 0.0000000
[43] 0.7030833 0.7030833 -0.3303050 2.4352556 -0.2555678 0.7030833
[49] 0.0000000 0.7030833 -0.7432770 0.0000000 0.0000000 2.4352556
[55] 0.0000000 -0.3303050 0.0000000 0.7030833 0.7030833 -0.7432770
[61] 2.4352556 -0.7432770 2.4352556 -0.2555678 0.0000000 0.7030833
[67] 0.7030833 0.0000000 0.0000000 0.0000000 0.0000000 2.4352556
[73] 0.7030833 2.4352556 -0.3303050 2.4352556 -0.3303050 0.7030833
[79] 0.7030833 0.7030833

Example

Live Demo

> y3<-sample(c(rnorm(5),0),80,replace=TRUE)
> y3

Output

[1] 0.0000000 -1.0907582 0.3234917 -0.4812229 0.0000000 0.3234917
[7] -1.0907582 0.5083502 2.3883446 0.5083502 -1.0907582 0.5083502
[13] 0.5083502 0.5083502 -1.0907582 -1.0907582 0.0000000 -0.4812229
[19] 0.3234917 0.5083502 2.3883446 2.3883446 0.5083502 0.5083502
[25] 0.5083502 0.3234917 0.5083502 -0.4812229 -0.4812229 2.3883446
[31] 0.5083502 -0.4812229 0.3234917 0.3234917 0.0000000 2.3883446
[37] -0.4812229 -0.4812229 0.3234917 0.3234917 -1.0907582 2.3883446
[43] -1.0907582 0.3234917 -0.4812229 0.3234917 2.3883446 -0.4812229
[49] -0.4812229 0.0000000 0.0000000 0.5083502 0.3234917 -1.0907582
[55] 0.5083502 2.3883446 0.0000000 0.3234917 0.3234917 -1.0907582
[61] -0.4812229 -0.4812229 0.0000000 0.0000000 0.3234917 -0.4812229
[67] 2.3883446 0.3234917 -1.0907582 0.5083502 -0.4812229 0.3234917
[73] -0.4812229 0.5083502 2.3883446 0.3234917 0.5083502 0.3234917
[79] 0.3234917 2.3883446

Example

> x3[x3==0]<-NA
> y3[y3==0]<-NA
> x3

Output

[1] 0.7030833 0.7030833 2.4352556 NA -0.7432770 -0.7432770
[7] -0.3303050 -0.2555678 NA -0.2555678 -0.3303050 0.7030833
[13] -0.7432770 -0.7432770 2.4352556 NA -0.3303050 -0.3303050
[19] -0.7432770 -0.3303050 -0.7432770 2.4352556 -0.2555678 -0.2555678
[25] -0.3303050 -0.7432770 -0.7432770 -0.7432770 0.7030833 NA
[31] -0.2555678 NA 2.4352556 2.4352556 -0.7432770 -0.7432770
[37] 0.7030833 NA 2.4352556 -0.7432770 -0.3303050 NA
[43] 0.7030833 0.7030833 -0.3303050 2.4352556 -0.2555678 0.7030833
[49] NA 0.7030833 -0.7432770 NA NA 2.4352556
[55] NA -0.3303050 NA 0.7030833 0.7030833 -0.7432770
[61] 2.4352556 -0.7432770 2.4352556 -0.2555678 NA 0.7030833
[67] 0.7030833 NA NA NA NA 2.4352556
[73] 0.7030833 2.4352556 -0.3303050 2.4352556 -0.3303050 0.7030833
[79] 0.7030833 0.7030833

Example

> y3

Output

[1] NA -1.0907582 0.3234917 -0.4812229 NA 0.3234917
[7] -1.0907582 0.5083502 2.3883446 0.5083502 -1.0907582 0.5083502
[13] 0.5083502 0.5083502 -1.0907582 -1.0907582 NA -0.4812229
[19] 0.3234917 0.5083502 2.3883446 2.3883446 0.5083502 0.5083502
[25] 0.5083502 0.3234917 0.5083502 -0.4812229 -0.4812229 2.3883446
[31] 0.5083502 -0.4812229 0.3234917 0.3234917 NA 2.3883446
[37] -0.4812229 -0.4812229 0.3234917 0.3234917 -1.0907582 2.3883446
[43] -1.0907582 0.3234917 -0.4812229 0.3234917 2.3883446 -0.4812229
[49] -0.4812229 NA NA 0.5083502 0.3234917 -1.0907582
[55] 0.5083502 2.3883446 NA 0.3234917 0.3234917 -1.0907582
[61] -0.4812229 -0.4812229 NA NA 0.3234917 -0.4812229
[67] 2.3883446 0.3234917 -1.0907582 0.5083502 -0.4812229 0.3234917
[73] -0.4812229 0.5083502 2.3883446 0.3234917 0.5083502 0.3234917
[79] 0.3234917 2.3883446

Example

> sum(x3/y3,na.rm=TRUE)

Output

[1] 40.23086

Updated on: 04-Jan-2021

167 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements