- Trending Categories
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 column mean by excluding NA’s and if all values are NA then output NA in R data frame?
To find the column mean by excluding NA’s can be easily done by using na,rm but if we want to have NA if all the values are NA then it won’t be that straight forward. Therefore, in such situation, we can use ifelse function and return the output as NA if all the values are NA as shown in the below examples.
Example1
Consider the below data frame −
x1<-sample(c(NA,2,3),20,replace=TRUE) x2<-rep(NA,20) df1<-data.frame(x1,x2) df1
Output
x1 x2 1 2 NA 2 NA NA 3 NA NA 4 2 NA 5 2 NA 6 NA NA 7 3 NA 8 NA NA 9 2 NA 10 3 NA 11 2 NA 12 NA NA 13 3 NA 14 2 NA 15 3 NA 16 NA NA 17 2 NA 18 2 NA 19 2 NA 20 2 NA
Finding the mean of columns x1 and x2 and return NA if all values are NA otherwise getting the mean of remaining values −
ifelse(all(is.na(df1$x1)),NA,mean(df1$x1,na.rm=T))
[1] 2.285714
ifelse(all(is.na(df1$x2)),NA,mean(df1$x2,na.rm=T))
[1] NA
Example2
y1<-sample(c(NA,rpois(1,5)),20,replace=TRUE) y2<-rep(NA,20) df2<-data.frame(y1,y2) df2
Output
y1 y2 1 8 NA 2 NA NA 3 NA NA 4 NA NA 5 NA NA 6 NA NA 7 8 NA 8 8 NA 9 NA NA 10 NA NA 11 8 NA 12 8 NA 13 8 NA 14 8 NA 15 NA NA 16 NA NA 17 NA NA 18 8 NA 19 NA NA 20 NA NA
Finding the mean of columns y1 and y2 and return NA if all values are NA otherwise getting the mean of remaining values −
ifelse(all(is.na(df2$y1)),NA,mean(df2$y1,na.rm=T))
[1] 8
ifelse(all(is.na(df2$y2)),NA,mean(df2$y2,na.rm=T))
[1] NA
- Related Articles
- How to calculate row means by excluding NA values in an R data frame?
- How to fill NA values with previous values in an R data frame column?
- How to replace NA values in columns of an R data frame form the mean of that column?
- How to convert empty values to NA in an R data frame?
- How to convert NaN values to NA in an R data frame?
- How to find the row sums if NA exists in the R data frame?
- How to subset R data frame rows and keep the rows with NA in the output?
- How to replace NA values with zeros in an R data frame?
- How to replace NAs with non-NA if there is only one non-NA in R data frame based on another column?
- How to replace NA with 0 and other values to 1 in an R data frame column?
- How to find the frequency of NA values per row in an R data frame?
- How to set NA values to TRUE for a Boolean column in an R data frame?
- How to fill the NA values from above row values in an R data frame?
- How to create a replacement column with multiple conditions and NA in R data frame?
- How to convert NaN to NA in an R data frame?
