Partición de datos en r basado en múltiples clases de observaciones

Estoy tratando de particionar un conjunto de datos que tengo en R, 2/3 para entrenamiento y 1/3 para prueba. Tengo una variable de clasificación, y siete variables numéricas. Cada observación se clasifica como A, B, C o D.

Para simplificar, digamos que la variable de clasificación, cl, es A para las primeras 100 observaciones, B para las observaciones 101 a 200, C hasta 300 y D hasta 400. Estoy tratando de obtener una partición que tenga 2/3 de las observaciones para cada uno de A, B, C y D (en lugar de simplemente obtener 2/3 de las observaciones para todo el conjunto de datos, ya que probablemente no tendrá las mismas cantidades de cada clasificación).

Cuando trato de muestrear desde un subconjunto de los datos, comosample(subset(data, cl=='A')), las columnas se reordenan en lugar de las filas.

Para resumir, mi objetivo es tener 67 observaciones aleatorias de cada uno de A, B, C y D como datos de entrenamiento y almacenar las 33 observaciones restantes para cada uno de A, B, C y D como datos de prueba. Encontré una pregunta muy similar a la mía, pero no tuvo en cuenta múltiples variables.

Respuestas a la pregunta(4)

Su respuesta a la pregunta