- 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
How to find the number of times a variable changes its sign in an R data frame column?
To find the number of times a variable changes its sign in an R data frame column, we can use sign function with diff and sum function.
For example, if we have a data frame called df that contains a column say C then, we can find the number of times C changes its sign by using the following command −
sum(diff(sign(df$C))!=0)
Example 1
Following snippet creates a sample data frame −
x<-rnorm(20) df1<-data.frame(x) df1
The following dataframe is created −
x 1 0.37963948 2 -0.50232345 3 -0.33320738 4 -1.01857538 5 -1.07179123 6 0.30352864 7 0.44820978 8 0.05300423 9 0.92226747 10 2.05008469 11 -0.49103117 12 -2.30916888 13 1.00573852 14 -0.70920076 15 -0.68800862 16 1.02557137 17 -0.28477301 18 -1.22071771 19 0.18130348 20 -0.13889136
To find the number of times x changes its sign, add the following code to the above snippet −
x<-rnorm(20) df1<-data.frame(x) sum(diff(sign(df1$x))!=0)
Output
If you execute all the above given snippets as a single program, it generates the following output −
[1] 9
Example 2
Following snippet creates a sample data frame −
y<-sample(-2:2,20,replace=TRUE) df2<-data.frame(y) df2
The following dataframe is created −
y 1 -1 2 0 3 -1 4 2 5 2 6 0 7 1 8 1 9 1 10 2 11 0 12 -2 13 -1 14 -2 15 -1 16 2 17 0 18 1 19 1 20 -2
To find the number of times y changes its sign, add the following code to the above snippet −
y<-sample(-2:2,20,replace=TRUE) df2<-data.frame(y) sum(diff(sign(df2$y))!=0)
Output
If you execute all the above given snippets as a single program, it generates the following output −
[1] 11
Example 3
Following snippet creates a sample data frame −
z<-sample(-5:5,20,replace=TRUE) df3<-data.frame(z) df3
The following dataframe is created −
z 1 5 2 0 3 3 4 2 5 4 6 -2 7 -1 8 1 9 -5 10 2 11 2 12 4 13 3 14 2 15 -4 16 -1 17 3 18 1 19 1 20 4
To find the number of times z changes its sign, add the following code to the above snippet −
z<-sample(-5:5,20,replace=TRUE) df3<-data.frame(z) sum(diff(sign(df3$z))!=0)
Output
If you execute all the above given snippets as a single program, it generates the following output −
[1] 8