On 27/04/17 12:45, Val wrote:
HI all,
I have a data frame with three variables. Some of the variables do
have missing values and I want to replace those missing values
(1represented by NA) with the mean value of that variable. In this
sample data, variable z and y do have missing values. The mean value
of y and z are152. 25 and 359.5, respectively . I want replace those
missing values by the respective mean value ( rounded to the nearest
whole number).
DF1 <- read.table(header=TRUE, text='ID1 x y z
1 25 122 352
2 30 135 376
3 40 NA 350
4 26 157 NA
5 60 195 360')
mean x= 36.2
mean y=152.25
mean z= 359.5
output
ID1 x y z
1 25 122 352
2 30 135 376
3 40 152 350
4 26 157 360
5 60 195 360
This is pretty basic. You really ought to learn a bit more about R if
you are going to use R. That being said, try:
newDF1 <- as.data.frame(lapply(DF1,function(x){
x[is.na(x)] <- mean(x,na.rm=TRUE)
x}))
There may be sexier ways of accomplishing your goal, but this should work.
cheers,
Rolf Turner
--
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.