Might be slightly more interesting. If we want to generate values which
are completely missing at random, then we can just simply sample all
available index of a 2-d array.

 
# simulate data #
 set.seed(1) # for reproducibility
 m <- matrix( rnorm(12), nr=4, nc=3 )
 m
           [,1]       [,2]       [,3]
[1,] -0.6264538  0.3295078  0.5757814
[2,]  0.1836433 -0.8204684 -0.3053884
[3,] -0.8356286  0.4874291  1.5117812
[4,]  1.5952808  0.7383247  0.3898432
   

 indices  <- expand.grid( row=1:nrow(m), col=1:ncol(m) )
                               # generate all possible indices
 N        <- ncol(m)*nrow(m)   # number of total elements


Now suppose you want to generate 25% missing values, then

 k <- round( 0.25 * N )
 w <- as.matrix( indices[ sample( 1:N, k ), ] )
 w            # shows the row and column numbers that will be imputed
   row col
4    4   1
5    1   2
1    1   1

  
 m[ w ] <- NA    # impute NAs
 m
           [,1]       [,2]       [,3]
[1,]         NA         NA  0.5757814
[2,]  0.1836433 -0.8204684 -0.3053884
[3,] -0.8356286  0.4874291  1.5117812
[4,]         NA  0.7383247  0.3898432


Regards, Adai



On Tue, 2005-03-01 at 15:30 +0100, Uwe Ligges wrote:
> Caroline TRUNTZER wrote:
> > Hello
> > I would like to delete some values at random in a data frame. Does
> > anyone know how I could do?
> 
> What about sample()-ing (if I understand "at random" correctly) a 
> certain number of values from 1:nrow(data) and using the result as 
> negative index the data.frame?
> 
> Uwe Ligges
> 
> 
> > With best regards
> > Caroline
> > 
> > ______________________________________________
> > [email protected] mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! 
> > http://www.R-project.org/posting-guide.html
> 
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to