How to Use sign() Function in R (3 Examples)

The sign() function in R is a mathematical function that returns -1, 0, or 1 depending on the sign of a numeric value. It is useful for quickly returning a numeric vector with the sign of the input values. Three examples of how to use the sign() function in R are finding the sign of a single numeric value, finding the sign of multiple numeric values, and finding the sign of a vector of numeric values.


You can use the sign() function in base R to return the sign of each element in a vector.

This function uses the following basic syntax:

sign(x)

where:

  • x: A numeric vector

The function will return:

  • -1: If a value is negative
  • 0: If a value is zero
  • 1: If a value is positive

The following examples show how to use the sign() function in different scenarios.

Example 1: Use sign() with Vector

The following code shows how to use the sign() function to display the sign of each value in a numeric vector:

#define vector of values
x <- c(-3, 0, 3)

#return sign of each element in vector
sign(x)

[1] -1  0  1

Here’s how to interpret the output:

  • The first value is -1 since the first value in the vector is negative.
  • The second value is 0 since the second value in the vector is zero.
  • The third value is 1 since the third value in the vector is positive.

Example 2: Use sign() with Data Frame Column

The following code shows how to use the sign() function to display the sign of each value in a column of a data frame:

#create data frame
df <- data.frame(x=c(0, 1.4, -1, 5, -4, 12),
                 y=c(3, 4, 3, 6, 10, 11))

#view data frame
df

     x  y
1  0.0  3
2  1.4  4
3 -1.0  3
4  5.0  6
5 -4.0 10
6 12.0 11

#view sign of each value in column x
sign(df$x)

[1]  0  1 -1  1 -1  1

Example 3: Use sign() to Create New Data Frame Column

#create data frame
df <- data.frame(x=c(0, 1.4, -1, 5, -4, 12),
                 y=c(3, 4, 3, 6, 10, 11))

#view data frame
df

     x  y
1  0.0  3
2  1.4  4
3 -1.0  3
4  5.0  6
5 -4.0 10
6 12.0 11

The following code shows how to use the sign() function to create a new column called ‘z’ whose values are dependent on the values in the existing column ‘x’:

#create new column 'z' based on sign of values in column 'x'
df$z <- with(df, ifelse(sign(x) == -1, 'negative',
                   ifelse(sign(x) == 0, 'zero', 'positive')))

#view updated data frame
df

     x  y        z
1  0.0  3     zero
2  1.4  4 positive
3 -1.0  3 negative
4  5.0  6 positive
5 -4.0 10 negative
6 12.0 11 positive

Notice that the values in column ‘z’ correspond to the sign of the values in column ‘x’.

The following tutorials explain how to use other common functions in R:

x