[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