В R, как получить все возможные комбинации значений некоторых векторов?

Предыстория: у меня есть функция, которая принимает некоторые параметры. Я хочу получить результат функции для всех возможных комбинаций параметров.

Упрощенный пример:

f <- function(x, y) { return paste(x, y, sep=",")} 
colors = c("red", "green", "blue") 
days = c("Monday", "Tuesday") 

Я хочу, чтобы мой результат выглядел так

     color    day         f    
[1,] "red"    "Monday"    "red,Monday" 
[2,] "red"    "Tuesday"   "red,Tuesday"
[3,] "green"  "Monday"    "green,Monday"
[4,] "green"  "Tuesday"   "green,Tuesday"
[5,] "blue"   "Monday"    "blue,Monday"
[6,] "blue"   "Tuesday"   "blue,Tuesday"

Моя идея состоит в том, чтобы создать матрицу со столбцами , цвет и день , заполнить ее, используя существующие векторы цвета и дней , инициализируйте пустой столбец для результатов, затем используйте цикл для вызова f один раз для каждой строки матрицы и записи результата в последний столбец. Но я не знаю, как легко сгенерировать матрицу из вектора цветов и дней .Я попытался найти его, но все результаты были получены для функции combn , которая делает что-то другое.

В этом упрощенном случае цвета и дней являются факторами, но в моем реальном примере это не так. Некоторые параметры функции являются целыми числами, поэтому мой реальный вектор может больше выглядеть как 1, 2, 3 , и функция потребует, чтобы он был передан ей как числовой. Поэтому, пожалуйста, никаких решений, которые полагаются на уровни факторов, если их каким-либо образом нельзя использовать для работы с целыми числами.

9
задан rumtscho 26 October 2011 в 16:03
поделиться