Элементарное умножение между двумя векторами эффективно [дублировать]

Используйте метод isin. rpt[rpt['STK_ID'].isin(stk_list)].

4
задан variable 14 August 2013 в 21:39
поделиться

2 ответа

Вероятно, вы ищете outer() или бинарный оператор alias %o%:

> c(2,3,4) %o% c(1,2)
     [,1] [,2]
[1,]    2    4
[2,]    3    6
[3,]    4    8
> outer(c(2,3,4), c(1,2))
     [,1] [,2]
[1,]    2    4
[2,]    3    6
[3,]    4    8

В вашем случае outer() предлагает гибкость для указания функции, применяемой к комбинациям ; %o% применяется только функция умножения *. Для вашего примера и данных

mph <- function(d, rpm) {
    cir <- pi * d
    cir * rpm / 63360 * 60
}

> outer(c(20,26,29), c(150,350), FUN = mph)
          [,1]     [,2]
[1,]  8.924979 20.82495
[2,] 11.602473 27.07244
[3,] 12.941220 30.19618
8
ответ дан Gavin Simpson 22 August 2018 в 13:53
поделиться

Я считаю, что функция, которую вы ищете, это outer

> outer(cir, rpm, function(X, Y) X * Y / 63360 * 60)
          [,1]     [,2]
[1,]  8.924979 20.82495
[2,] 11.602473 27.07244
[3,] 12.941220 30.19618

. В этом случае вы можете немного очистить обозначение:

outer(cir, rpm / 63360 * 60)
5
ответ дан Señor O 22 August 2018 в 13:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: