Dear All,

I am new to R and slowly learning how to use the system.

The following code is an exercise I was trying.
The intent is to generate 10 random samples of size 5 from
a vector with integers 1:10 and 2 missing values. I then want
to generate a matrix, for each sample which shows the frequency
of missing values (NA) in each sample. My solution, using sapply
is at the end.

If anyone has the time and/or intrest to critique my method I'd
be very grateful. I'm especially interested in knowing if there is
a better way to accomplish this problem.

(x<-replicate(10,sample(c(1:10,rep(NA,2)),5)))
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    3   NA    3    4    2   10   NA    4    5     4
[2,]    5    7    7    3    9    2    8   NA    7     9
[3,]   NA    8    1    5   NA    7   10    2   NA     6
[4,]    2   NA    6   10    8    4    4    7    4     7
[5,]    7    9   10    8    3    6    1   NA    9    NA
# Since table will return only a single item of vaule FALSE
# if there are no missing values (NA) in a sample, sapply
# will return a list and not a matrix.
# So to get a matrix, the factor function needs to be used
# to identify possible results (FALSE, TRUE) for the table
# function.
sapply(1:10,function(i) table(factor(is.na(x[,i]),c(FALSE,TRUE))))
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
FALSE    4    3    5    5    4    5    4    3    4     4
TRUE     1    2    0    0    1    0    1    2    1     1


Thanks for your thoughts.

Murray M Cooper, Ph.D.
Richland Statistics
9800 N 24th St
Richland, MI, USA 49083
Mail: richs...@earthlink.net

______________________________________________
R-help@r-project.org mailing list
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.

Reply via email to