It seems simple but I cannot find the solution: I want to randomly select some elements into a data frame imported from a .xlsx file.Is there a function such as sample_n to do this?
My problem lies in the fact that sample_n returns a number of whole rows and not single data. That is: I want a sample of elements into whatever (and possibly repeated) row.
Here is an example:
MAS<-function(x,n){sample_n(x, n, na.rm=FALSE)}
df <- data.frame(
"entero" = 1:4,
"factor" = c("a", "b", "c", "d"),
"numero" = c(NA, 3.4, NA, 5.6),
"cadena" = as.character(c("a", "b", "c", "d"))
)
MAS(df,2)
which returns, for example:
entero factor numero cadena
1 3 c NA c
2 4 d 5.6 d
That is, whole rows instead of single elements. I would also like to avoid the 'NA' values, by the way.
Thank you.
If you don't mind getting a
charactervector, it is as simple as coercing thedata.frameinto a (character)matrixand then sampling from it:To avoid sampling
NAvalues, just restrict the sampling to the cells which aren't missing:If you want to keep the
class, you'll need to get alistin return, and the sampling gets a bit trickier.