How to Calculate Expected Value in R (With Examples)

Expected value in R is the expected outcome of a given event or experiment. It is calculated by multiplying the probability of each outcome by its respective payoff and then summing the results. To calculate expected value in R, you can use the dbinom() function to obtain the probability of each outcome, and then multiply that probability by its expected payoff. Examples of calculating expected value in R are provided in the following sections.


A probability distribution tells us the probability that a takes on certain values.

For example, the following probability distribution tells us the probability that a certain soccer team scores a certain number of goals in a given game:

To find the expected value of a probability distribution, we can use the following formula:

μ = Σx * P(x)

where:

  • x: Data value
  • P(x): Probability of value

For example, the expected number of goals for the soccer team would be calculated as:

μ = 0*0.18  +  1*0.34  +  2*0.35  +  3*0.11  +  4*0.02  =  1.45 goals.

To calculate expected value of a probability distribution in R, we can use one of the following three methods:

#method 1
sum(vals*probs)

#method 2
weighted.mean(vals, probs)

#method 3
c(vals %*% probs)

All three methods will return the same result.

The following examples show how to use each of these methods in R.

Example 1: Expected Value Using sum()

The following code shows how to calculate the expected value of a probability distribution using the sum() function:

#define values
vals <- c(0, 1, 2, 3, 4)

#define probabilities
probs <- c(.18, .34, .35, .11, .02)

#calculate expected value
sum(vals*probs)

[1] 1.45

Example 2: Expected Value Using weighted.mean()

#define values
vals <- c(0, 1, 2, 3, 4)

#define probabilities
probs <- c(.18, .34, .35, .11, .02)

#calculate expected value
weighted.mean(vals, probs)

[1] 1.45

Example 3: Expected Value Using c()

The following code shows how to calculate the expected value of a probability distribution using the built-in c() function in R:

#define values
vals <- c(0, 1, 2, 3, 4)

#define probabilities
probs <- c(.18, .34, .35, .11, .02)

#calculate expected value
c(vals %*% probs)

[1] 1.45

Notice that all three methods returned the same expected value.

x