¿Cómo dividir un vector en partes desiguales en R según una condición?

nachocab

Digamos que tengo estos dos vectores:

x <- c(1,2,4,6,7)
y <- c(3,7)

¿Cómo puedo dividir xen los elementos que son más pequeños que cada elemento de y? Por ejemplo: c(1,2) | c(4,6,7). .

Creo que una opción sería hacer un bucle doble y devolver el elemento más pequeño en el yque es más pequeño que el actual en x: c(3,3,3,7,7). Luego podría dividir usando este vector.

j <- 1
sapply(x, function(i){
  if (i <= y[j]) {
    y[j]
  } else {
    if (j < length(y)){
      j <- j + 1
    }
    y[j]
  }
})

Siento que hay una forma más inteligente de hacer esto, pero no puedo resolverlo.

lmo

Aquí hay un método base R usando splity findInterval:

split(x, findInterval(x, y, rightmost.closed=TRUE))

$`0`
[1] 1 2

$`1`
[1] 4 6 7

La findIntervalfunción devuelve un vector que categoriza los valores de las variables en x a lo largo de sus criterios en y. La splitfunción separa el vector según se desee y devuelve una lista con nombre.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Divida un número en partes desiguales para equilibrar el vector en r

Dividir una lista en partes desiguales especificadas por un diccionario

¿Cómo dividir un vector en n vectores e imprimirlos en una tabla en R?

¿Cómo usar awk o sed para dividir un archivo en 2 partes según una lista de valores?

¿Cómo dividir una lista en 2 partes según el porcentaje?

Dividir una lista en partes según un conjunto de índices en Python

¿Cómo dividir un df multiindex en partes 80/20 según la fecha?

Cómo reemplazar todos los valores en una columna según un vector ordenado en r

¿Cómo dividir una columna en dos en R según un símbolo del resultado del raspado?

En R, ¿cómo dividir una columna larga de datos numéricos en varias columnas según un determinado criterio?

¿Dividir una cuerda en N partes iguales?

Dividir una lista en N partes

Cómo dividir un diccionario que contiene listas en partes iguales según la longitud de las listas

¿Cómo puedo dividir una matriz en dos según las sumas de filas en R?

¿Cómo dividir una cadena en varias columnas según un patrón determinado?

¿Cómo dividir una cadena en varias columnas según un patrón determinado?

¿Cómo dividir con una condición particular en Java?

Cómo dividir un marco de datos en 2 por condición duplicada en R

Cómo dividir un marco de datos en 2 por condición duplicada en R

Cómo dividir una oración en varias partes en Ruby

Cómo dividir una oración en diferentes partes en CSS

Combine de manera eficiente dos listas desiguales en un diccionario según la condición

Cómo dividir una matriz por una condición en elementos adyacentes en un número limitado de particiones

Cómo dividir un marco de datos en nuevos marcos de datos según la condición de fecha en R

¿Cómo dividir un CSV según el valor de una columna en PowerShell?

¿Cómo dividir una cadena en 2 variables diferentes según un delimitador?

¿Cómo dividir un CSV según el valor de una columna en PowerShell?

¿Cómo dividir una hoja de Excel en varias hojas según un valor delimitador?

¿Cómo dividir un CSV según el valor de una columna en PowerShell?

TOP Lista

CalienteEtiquetas

Archivo