# with() and within() Functions in R

with() and within() Functions in R, To evaluate an expression depending on a data frame, use R’s with() and inside() functions.

The syntax for these functions is as follows:

with(data, expression) within(data, expression)

where:

data: The data frame name

expression: The expression to evaluate

The following is the distinction between the two functions:

The expression is evaluated with() without changing the underlying data frame.

inside() evaluates the expression and copies the original data frame into a new data frame.

With the following data frame, the following examples explain how to utilize each function in practice.

## with() and within() Functions in R

Let’s create a data frame

df <- data.frame(x=c(13, 15, 15, 17, 15, 20), y=c(22, 22, 20, 25, 29, 24)) df

x y 1 13 22 2 15 22 3 15 20 4 17 25 5 15 29 6 20 24

### Example 1: Use with() Function

To multiply the values across the two columns in the data frame, we can use the with() function:

x and y values are multiplied

with(df, x*y) [1] 286 330 300 425 435 480

The data frame’s values from column x and column y are multiplied together, yielding a vector of length 6.

### Example 2: Use the within() function

To multiply the values between the two columns in the data frame and assign the results to a new column in the data frame, we can use the inside() function:

Multiply the x and y values and apply the results to the new column z.

Data Visualization with R-Scatter plots »

within(df, z <- x*y)

x y z 1 13 22 286 2 15 22 330 3 15 20 300 4 17 25 425 5 15 29 435 6 20 24 480

The multiplication results are now placed in a new column called z.

It’s vital to remember that the within () function generates a copy of the original data frame but does not actually change it:

Let’s look at the original data frame

df

x y 1 13 22 2 15 22 3 15 20 4 17 25 5 15 29 6 20 24

To save the multiplication results indefinitely, we must assign them to a new data frame:

multiply the x and y values and save the results in a new data frame.

Deep Belief Networks and Autoencoders »

df1<- within(df, z <- x*y)

Let’s view the new data frame

df1

x y z 1 13 22 286 2 15 22 330 3 15 20 300 4 17 25 425 5 15 29 435 6 20 24 480