I have a dataframe with columns of data with missing value and I would like to replace the missing value by taking the mean using the value of the cells above and below.
df1<-c(2,2,NA,10, 20, NA,3)
if(df1[i]== NA){
df1[i]= mean(df1[i+1],df1[i-1])
}
However, I am getting this error
Error in if (df1[i] == NA) { : missing value where TRUE/FALSE needed
In addition: Warning message:
In if (df1[i] == NA) { :
the condition has length > 1 and only the first element will be used
Any guidance would be appreciated to solve this issue.
If you are sure you don't have any consecutive NA values and the first and last elements are never NA, then you can do
This should be more efficient than a loop.