¿Cómo puedo seleccionar todas las filas para una muestra aleatoria de valores de columna?R - ¿Seleccionar filas para una muestra aleatoria de valores de columna?
Tengo una trama de datos que tiene este aspecto:
tag weight
R007 10
R007 11
R007 9
J102 11
J102 9
J102 13
J102 10
M942 3
M054 9
M054 12
V671 12
V671 13
V671 9
V671 12
Z990 10
Z990 11
Eso puede replicar usando ...
weights_df <- structure(list(tag = structure(c(4L, 4L, 4L, 1L, 1L, 1L, 1L,
3L, 2L, 2L, 5L, 5L, 5L, 5L, 6L, 6L), .Label = c("J102", "M054",
"M942", "R007", "V671", "Z990"), class = "factor"), value = c(10L,
11L, 9L, 11L, 9L, 13L, 10L, 3L, 9L, 12L, 12L, 14L, 5L, 12L, 11L,
15L)), .Names = c("tag", "value"), class = "data.frame", row.names = c(NA,
-16L))
Necesito crear una trama de datos que contiene todas las filas de lo anterior dataframe para dos etiquetas muestreadas al azar. Digamos etiquetas R007and M942 ser seleccionado al azar, mi nueva trama de datos tiene que tener este aspecto:
tag weight
R007 10
R007 11
R007 9
M942 3
¿Cómo se hace esto?
sé que puedo crear una lista de dos etiquetas al azar como esto:
library(plyr)
tags <- ddply(weights_df, .(tag), summarise, count = length(tag))
set.seed(5464)
tag_sample <- tags[sample(nrow(tags),2),]
tag_sample
Resultando en ...
tag count
4 R007 3
3 M942 1
Pero simplemente no saben cómo utilizar que al subconjunto mi dataframe original
Lo tienes :) ¡Gracias! De hecho, traté de encontrar un operador "in" similar a SQL, pero no se me ocurrió nada. –
nice one. aunque no creo que necesites invocar la función 'levels'. – Ramnath
@Ramnath aquí 'levels' es necesario. – kohske