melatonin15
melatonin15

Reputation: 2269

Meaning of %o% in R

I encountered the following in R:

x=x+y%o%c(1.5,1.5)

I am wondering what is the meaning of %o% here. I tried googling but didn't have much luck

Upvotes: 8

Views: 11730

Answers (2)

goalkeeperfyc
goalkeeperfyc

Reputation: 11

An intuition. %o% is outer product, look at the example, it returns a matrix.
a[1] * b is the first row of matrix,
a[2] * b is the second row of the matrix.

> a = c(1, 2, 3)
> b = c(0, 2, 4)
> a %o% b
     [,1] [,2] [,3]
[1,]    0    2    4
[2,]    0    4    8
[3,]    0    6   12

Upvotes: 1

Señor O
Señor O

Reputation: 17412

There are a number of shortcuts in R that use the %...% notation. %o% is the outer product of arrays

> 1:3 %o% 1:3
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    4    6
[3,]    3    6    9

There are a number of others, my most used is %in%:

3 %in% c(1,2,3,4) #TRUE
5 %in% c(1,2,3,4) #FALSE
3.4 %in% c(1,2,3,4) #FALSE

There are a few others, I don't know them all off the top of my head. But when you encounter them, you can check for documentation by using backticks around the %o% like ?`%o%`, or quotes ?'%o%' (or ?"%o%").

They are obviously difficult to google because of the percent sign.

Upvotes: 21

Related Questions