[R] Not missing at random

Dennis Murphy djmuser at gmail.com
Fri Jun 3 18:27:16 CEST 2011


Hi:

Try this:

x <- matrix(c(rep(1:5, 9), rep(3, 3), 4), ncol = 7, byrow = TRUE)
## indices of x for which the value is less than 3
candidates <- which(x < 3, arr.ind = TRUE)    # generates 18 candidates
grabs <- sample(nrow(candidates), 15)          # 15/49 ~ 0.3
x2 <- x    # copy x
x2[candidates[grabs, ]] <- NA
x2

HTH,
Dennis

On Fri, Jun 3, 2011 at 5:49 AM, Blaz Simcic <blazsimcic at yahoo.com> wrote:
> Hello!
>
> I would like to sample 30 % of cases (with at least 1 value lower than 3) and
> among them I want to set all values lower than 3 (within selected cases) as NA
> (NMAR- Not missing at random). I managed to sample cases, but I don’t know how
> to set values (lower than 3) as NA.
>
> R code:
>
> x <-
> matrix(c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,3,3,3,4),
>  nrow = 7, ncol=7, byrow=TRUE) ####matrix
>
> pMiss <- 30     ####percent of missing values
>
> N <- dim(x)[1]   ####number of cases
>
> candidate<-which(x[,1]<3 | x[,2]<3 | x[,3]<3 | x[,4]<3 | x[,5]<3 | x[,6]<3 |
> x[,7]<3)    #### I want to sample all cases with at least 1 value lower than 3,
> so I have to find candidates
>
> idMiss <- sample(candidate, N * p / 100)    #### I sampled cases
>
> Any suggestion?
>
> Thanks,
> Blaž
>        [[alternative HTML version deleted]]
>
>
> ______________________________________________
> R-help at 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.
>
>



More information about the R-help mailing list