Таблица декартовых произведений для алгебраического отношения в R

У меня есть один или два числовых вектора, например. x <- c(1, 2, 3). Я хочу создать графическое представление отношения aRb, где R — любая алгебраическая формула, такая как a + b (используется в приведенном ниже примере) или a / (a + b)a,b любым элементом x, включая a = b, то есть рефлексивное отношение).

Структура должна быть:

R   a   b   c
a  a+a a+b a+c
b  b+a b+b b+c
c  c+a c+b c+c

поэтому вывод будет (для вектора выборки x выше):

R   1   2   3
1   2   3   4
2   3   4   5
3   4   5   6

R также может быть сравнением, таким как a = b или a > b^2 / a, тогда результатом в таблице будет не число, а ИСТИНА или ЛОЖЬ.

Есть ли функция для создания такой таблицы в R?


person Community    schedule 14.05.2013    source источник


Ответы (1)


x <- 1:3
outer(x,x,"+")

     [,1] [,2] [,3]
[1,]    2    3    4
[2,]    3    4    5
[3,]    4    5    6

Вы можете передать другие функции outer, например.

outer(x,x,"==")

outer(x,x,FUN=function(a,b){a > (b^2 / a)})
person Roland    schedule 14.05.2013