Iterar sobre producto cartesiano de vectores.

Tengo el siguiente bucle anidado:

for (x in xs) {
    for (y in ys) {
        # Do something with x and y
    }
}

Que me gustaría aplanar, así que pensé en construir un producto cartesiano de los dos vectoresxs yys y repitiendo el resultado. En Python, esto sería trivial:

for xy in product(xs, ys):
    # x, y = xy[0], xy[1]

Pero en R, el equivalente más simple que he encontrado se ve desalentador:

xys <- expand.grid(xs, ys)
for (i in 1 : nrow(xys)) {
    xy <- as.vector(xys[i, ])
    # x <- xy[1], y <- xy[2]
}

Seguramente debe haber una mejor manera, ¿no? (Para aclarar, no quiero iterar sobre unaíndice ... Creo que debe haber una manera de iterar directamente sobre las tuplas en el producto.)

Respuestas a la pregunta(2)

Su respuesta a la pregunta