mercredi 23 octobre 2019

How to randomly select row from a dataframe for which the row skewness is larger that a given value in R

I am trying to select random rows from a data frame with 1000 lines (and six columns) where the skewness of the line is larger than a given value (say Sk > 0.3).

I've generated the following data frame

df=data.frame(replicate(6,sample(10:100,1000,rep=TRUE)))

I can get row skewness from the fbasics package:

rowSkewness(df) gives:

   [8] -0.2243295435  0.5306809351  0.0707122386  0.0341447417  0.3339384838 -0.3910593364 -0.6443905090
  [15]  0.5603809206  0.4406091534 -0.3736108832  0.0397860038  0.9970040772 -0.7702547535  0.2065830354 

But now, I need to select say 10 rows of the df which have rowskewness greater than say 0.1... May with

for (a in 1:10) {
  sample.data[a,] = sample(x=df[wich(rowSkewness(df[sample(1:nrow(df),1)>0.1),], size = 1, replace = TRUE)
}

or something like this?

Any thoughts on this will be appreciated. thanks in advance.




Aucun commentaire:

Enregistrer un commentaire